LEFT | RIGHT |
1 // Copyright 2009 The Go Authors. All rights reserved. | 1 // Copyright 2009 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 /* | 5 /* |
6 * basic types | 6 * basic types |
7 */ | 7 */ |
8 typedef signed char int8; | 8 typedef signed char int8; |
9 typedef unsigned char uint8; | 9 typedef unsigned char uint8; |
10 typedef signed short int16; | 10 typedef signed short int16; |
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 { | 696 { |
697 int32 siz; | 697 int32 siz; |
698 bool special; // not part of defer frame | 698 bool special; // not part of defer frame |
699 byte* argp; // where args were copied from | 699 byte* argp; // where args were copied from |
700 byte* pc; | 700 byte* pc; |
701 FuncVal* fn; | 701 FuncVal* fn; |
702 Defer* link; | 702 Defer* link; |
703 void* args[1]; // padded to actual size | 703 void* args[1]; // padded to actual size |
704 }; | 704 }; |
705 | 705 |
| 706 // argp used in Defer structs when there is no argp. |
| 707 // TODO(rsc): Maybe we could use nil instead, but we've always used -1 |
| 708 // and I don't want to change this days before the Go 1.3 release. |
| 709 #define NoArgs ((byte*)-1) |
| 710 |
706 /* | 711 /* |
707 * panics | 712 * panics |
708 */ | 713 */ |
709 struct Panic | 714 struct Panic |
710 { | 715 { |
711 Eface arg; // argument to panic | 716 Eface arg; // argument to panic |
712 uintptr stackbase; // g->stackbase in panic | 717 uintptr stackbase; // g->stackbase in panic |
713 Panic* link; // link to earlier panic | 718 Panic* link; // link to earlier panic |
714 Defer* defer; // current executing defer | 719 Defer* defer; // current executing defer |
715 bool recovered; // whether this panic is over | 720 bool recovered; // whether this panic is over |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 Slice runtime·gobytes(byte*, intgo); | 837 Slice runtime·gobytes(byte*, intgo); |
833 String runtime·gostringnocopy(byte*); | 838 String runtime·gostringnocopy(byte*); |
834 String runtime·gostringw(uint16*); | 839 String runtime·gostringw(uint16*); |
835 void runtime·initsig(void); | 840 void runtime·initsig(void); |
836 void runtime·sigenable(uint32 sig); | 841 void runtime·sigenable(uint32 sig); |
837 void runtime·sigdisable(uint32 sig); | 842 void runtime·sigdisable(uint32 sig); |
838 int32 runtime·gotraceback(bool *crash); | 843 int32 runtime·gotraceback(bool *crash); |
839 void runtime·goroutineheader(G*); | 844 void runtime·goroutineheader(G*); |
840 int32 runtime·open(int8*, int32, int32); | 845 int32 runtime·open(int8*, int32, int32); |
841 int32 runtime·read(int32, void*, int32); | 846 int32 runtime·read(int32, void*, int32); |
842 int32» runtime·write(int32, void*, int32); | 847 int32» runtime·write(uintptr, void*, int32); // use uintptr to accommodate wind
ows. |
843 int32 runtime·close(int32); | 848 int32 runtime·close(int32); |
844 int32 runtime·mincore(void*, uintptr, byte*); | 849 int32 runtime·mincore(void*, uintptr, byte*); |
845 void runtime·jmpdefer(FuncVal*, void*); | 850 void runtime·jmpdefer(FuncVal*, void*); |
846 void runtime·exit1(int32); | 851 void runtime·exit1(int32); |
847 void runtime·ready(G*); | 852 void runtime·ready(G*); |
848 byte* runtime·getenv(int8*); | 853 byte* runtime·getenv(int8*); |
849 int32 runtime·atoi(byte*); | 854 int32 runtime·atoi(byte*); |
850 void runtime·newosproc(M *mp, void *stk); | 855 void runtime·newosproc(M *mp, void *stk); |
851 void runtime·mstart(void); | 856 void runtime·mstart(void); |
852 G* runtime·malg(int32); | 857 G* runtime·malg(int32); |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1136 extern float64 runtime·neginf; | 1141 extern float64 runtime·neginf; |
1137 extern uint64 ·nan; | 1142 extern uint64 ·nan; |
1138 extern uint64 ·posinf; | 1143 extern uint64 ·posinf; |
1139 extern uint64 ·neginf; | 1144 extern uint64 ·neginf; |
1140 #define ISNAN(f) ((f) != (f)) | 1145 #define ISNAN(f) ((f) != (f)) |
1141 | 1146 |
1142 enum | 1147 enum |
1143 { | 1148 { |
1144 UseSpanType = 1, | 1149 UseSpanType = 1, |
1145 }; | 1150 }; |
LEFT | RIGHT |