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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 | 44 |
45 /* | 45 /* |
46 * defined types | 46 * defined types |
47 */ | 47 */ |
48 typedef uint8 bool; | 48 typedef uint8 bool; |
49 typedef uint8 byte; | 49 typedef uint8 byte; |
50 typedef struct Func Func; | 50 typedef struct Func Func; |
51 typedef struct G G; | 51 typedef struct G G; |
52 typedef struct Gobuf Gobuf; | 52 typedef struct Gobuf Gobuf; |
53 typedef union Lock Lock; | 53 typedef union Lock Lock; |
| 54 typedef struct M M; |
54 typedef struct P P; | 55 typedef struct P P; |
55 typedef struct M M; | |
56 typedef struct Mem Mem; | 56 typedef struct Mem Mem; |
57 typedef union Note Note; | 57 typedef union Note Note; |
58 typedef struct Slice Slice; | 58 typedef struct Slice Slice; |
59 typedef struct Stktop Stktop; | 59 typedef struct Stktop Stktop; |
60 typedef struct String String; | 60 typedef struct String String; |
| 61 typedef struct FuncVal FuncVal; |
61 typedef struct SigTab SigTab; | 62 typedef struct SigTab SigTab; |
62 typedef struct MCache MCache; | 63 typedef struct MCache MCache; |
63 typedef struct FixAlloc FixAlloc; | 64 typedef struct FixAlloc FixAlloc; |
64 typedef struct Iface Iface; | 65 typedef struct Iface Iface; |
65 typedef struct Itab Itab; | 66 typedef struct Itab Itab; |
66 typedef struct InterfaceType InterfaceType; | 67 typedef struct InterfaceType InterfaceType; |
67 typedef struct Eface Eface; | 68 typedef struct Eface Eface; |
68 typedef struct Type Type; | 69 typedef struct Type Type; |
69 typedef struct ChanType ChanType; | 70 typedef struct ChanType ChanType; |
70 typedef struct MapType MapType; | 71 typedef struct MapType MapType; |
71 typedef struct Defer Defer; | 72 typedef struct Defer Defer; |
72 typedef struct DeferChunk DeferChunk; | 73 typedef struct DeferChunk DeferChunk; |
73 typedef struct Panic Panic; | 74 typedef struct Panic Panic; |
74 typedef struct Hmap Hmap; | 75 typedef struct Hmap Hmap; |
75 typedef struct Hchan Hchan; | 76 typedef struct Hchan Hchan; |
76 typedef struct Complex64 Complex64; | 77 typedef struct Complex64 Complex64; |
77 typedef struct Complex128 Complex128; | 78 typedef struct Complex128 Complex128; |
78 typedef struct WinCall WinCall; | 79 typedef struct WinCall WinCall; |
79 typedef struct SEH SEH; | 80 typedef struct SEH SEH; |
80 typedef struct Timers Timers; | 81 typedef struct Timers Timers; |
81 typedef struct Timer Timer; | 82 typedef struct Timer Timer; |
82 typedef struct» GCStats»» GCStats; | 83 typedef»struct» GCStats»» GCStats; |
83 typedef struct» LFNode» » LFNode; | 84 typedef»struct» LFNode» » LFNode; |
84 typedef struct» ParFor» » ParFor; | 85 typedef»struct» ParFor» » ParFor; |
85 typedef struct» ParForThread» ParForThread; | 86 typedef»struct» ParForThread» ParForThread; |
86 typedef struct» CgoMal» » CgoMal; | 87 typedef»struct» CgoMal» » CgoMal; |
87 | 88 |
88 /* | 89 /* |
89 * Per-CPU declaration. | 90 * Per-CPU declaration. |
90 * | 91 * |
91 * "extern register" is a special storage class implemented by 6c, 8c, etc. | 92 * "extern register" is a special storage class implemented by 6c, 8c, etc. |
92 * On the ARM, it is an actual register; elsewhere it is a slot in thread- | 93 * On the ARM, it is an actual register; elsewhere it is a slot in thread- |
93 * local storage indexed by a segment register. See zasmhdr in | 94 * local storage indexed by a segment register. See zasmhdr in |
94 * src/cmd/dist/buildruntime.c for details, and be aware that the linker may | 95 * src/cmd/dist/buildruntime.c for details, and be aware that the linker may |
95 * make further OS-specific changes to the compiler's output. For example, | 96 * make further OS-specific changes to the compiler's output. For example, |
96 * 6l/linux rewrites 0(GS) as -16(FS). | 97 * 6l/linux rewrites 0(GS) as -16(FS). |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 union Note | 158 union Note |
158 { | 159 { |
159 uint32 key; // futex-based impl | 160 uint32 key; // futex-based impl |
160 M* waitm; // waiting M (sema-based impl) | 161 M* waitm; // waiting M (sema-based impl) |
161 }; | 162 }; |
162 struct String | 163 struct String |
163 { | 164 { |
164 byte* str; | 165 byte* str; |
165 intgo len; | 166 intgo len; |
166 }; | 167 }; |
| 168 struct FuncVal |
| 169 { |
| 170 void (*fn)(void); |
| 171 // variable-size, fn-specific data here |
| 172 }; |
167 struct Iface | 173 struct Iface |
168 { | 174 { |
169 Itab* tab; | 175 Itab* tab; |
170 void* data; | 176 void* data; |
171 }; | 177 }; |
172 struct Eface | 178 struct Eface |
173 { | 179 { |
174 Type* type; | 180 Type* type; |
175 void* data; | 181 void* data; |
176 }; | 182 }; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 }; | 216 }; |
211 struct G | 217 struct G |
212 { | 218 { |
213 uintptr stackguard; // cannot move - also known to linker, libmach,
runtime/cgo | 219 uintptr stackguard; // cannot move - also known to linker, libmach,
runtime/cgo |
214 uintptr stackbase; // cannot move - also known to libmach, runtime/
cgo | 220 uintptr stackbase; // cannot move - also known to libmach, runtime/
cgo |
215 Defer* defer; | 221 Defer* defer; |
216 Panic* panic; | 222 Panic* panic; |
217 Gobuf sched; | 223 Gobuf sched; |
218 uintptr gcstack; // if status==Gsyscall, gcstack = stackb
ase to use during gc | 224 uintptr gcstack; // if status==Gsyscall, gcstack = stackb
ase to use during gc |
219 uintptr gcsp; // if status==Gsyscall, gcsp = sched.sp to use d
uring gc | 225 uintptr gcsp; // if status==Gsyscall, gcsp = sched.sp to use d
uring gc |
| 226 byte* gcpc; // if status==Gsyscall, gcpc = sched.pc to use d
uring gc |
220 uintptr gcguard; // if status==Gsyscall, gcguard = stackg
uard to use during gc | 227 uintptr gcguard; // if status==Gsyscall, gcguard = stackg
uard to use during gc |
221 uintptr stack0; | 228 uintptr stack0; |
222 » byte*» entry;» » // initial function | 229 » FuncVal*» fnstart;» » // initial function |
223 G* alllink; // on allg | 230 G* alllink; // on allg |
224 void* param; // passed parameter on wakeup | 231 void* param; // passed parameter on wakeup |
225 int16 status; | 232 int16 status; |
226 int64 goid; | 233 int64 goid; |
227 uint32 selgen; // valid sudog pointer | 234 uint32 selgen; // valid sudog pointer |
228 int8* waitreason; // if status==Gwaiting | 235 int8* waitreason; // if status==Gwaiting |
229 G* schedlink; | 236 G* schedlink; |
230 bool ispanic; | 237 bool ispanic; |
231 bool issystem; | 238 bool issystem; |
232 int8 raceignore; // ignore race detection events | 239 int8 raceignore; // ignore race detection events |
(...skipping 20 matching lines...) Expand all Loading... |
253 Gobuf morebuf; // gobuf arg to morestack | 260 Gobuf morebuf; // gobuf arg to morestack |
254 | 261 |
255 // Fields not known to debuggers. | 262 // Fields not known to debuggers. |
256 uint32 moreframesize; // size arguments to morestack | 263 uint32 moreframesize; // size arguments to morestack |
257 uint32 moreargsize; | 264 uint32 moreargsize; |
258 uintptr cret; // return value from C | 265 uintptr cret; // return value from C |
259 uint64 procid; // for debuggers, but offset not hard-coded | 266 uint64 procid; // for debuggers, but offset not hard-coded |
260 G* gsignal; // signal-handling G | 267 G* gsignal; // signal-handling G |
261 uint32 tls[8]; // thread-local storage (for 386 extern register
) | 268 uint32 tls[8]; // thread-local storage (for 386 extern register
) |
262 G* curg; // current running goroutine | 269 G* curg; // current running goroutine |
263 » P*» p;» » » // attached P for executing Go code (nil
if not executing Go code) | 270 » P*» p;» » // attached P for executing Go code (nil if not
executing Go code) |
264 P* nextp; | 271 P* nextp; |
265 int32 id; | 272 int32 id; |
266 int32 mallocing; | 273 int32 mallocing; |
267 int32 throwing; | 274 int32 throwing; |
268 int32 gcing; | 275 int32 gcing; |
269 int32 locks; | 276 int32 locks; |
270 int32 nomemprof; | 277 int32 nomemprof; |
271 int32 dying; | 278 int32 dying; |
272 int32 profilehz; | 279 int32 profilehz; |
273 int32 helpgc; | 280 int32 helpgc; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 #ifdef GOOS_plan9 | 320 #ifdef GOOS_plan9 |
314 int8* notesig; | 321 int8* notesig; |
315 #endif | 322 #endif |
316 SEH* seh; | 323 SEH* seh; |
317 uintptr end[]; | 324 uintptr end[]; |
318 }; | 325 }; |
319 | 326 |
320 struct P | 327 struct P |
321 { | 328 { |
322 Lock; | 329 Lock; |
| 330 |
323 uint32 status; // one of Pidle/Prunning/... | 331 uint32 status; // one of Pidle/Prunning/... |
324 P* link; | 332 P* link; |
325 uint32 tick; // incremented on every scheduler or system call | 333 uint32 tick; // incremented on every scheduler or system call |
326 M* m; // back-link to associated M (nil if idle) | 334 M* m; // back-link to associated M (nil if idle) |
327 MCache* mcache; | 335 MCache* mcache; |
328 | 336 |
329 // Queue of runnable goroutines. | 337 // Queue of runnable goroutines. |
330 G** runq; | 338 G** runq; |
331 int32 runqhead; | 339 int32 runqhead; |
332 int32 runqtail; | 340 int32 runqtail; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 struct Func | 387 struct Func |
380 { | 388 { |
381 String name; | 389 String name; |
382 String type; // go type string | 390 String type; // go type string |
383 String src; // src file name | 391 String src; // src file name |
384 Slice pcln; // pc/ln tab for this func | 392 Slice pcln; // pc/ln tab for this func |
385 uintptr entry; // entry pc | 393 uintptr entry; // entry pc |
386 uintptr pc0; // starting pc, ln for table | 394 uintptr pc0; // starting pc, ln for table |
387 int32 ln0; | 395 int32 ln0; |
388 int32 frame; // stack frame size | 396 int32 frame; // stack frame size |
389 » int32» args;» // number of 32-bit in/out args | 397 » int32» args;» // in/out args size |
390 » int32» locals;»// number of 32-bit locals | 398 » int32» locals;»// locals size |
391 }; | 399 }; |
392 | 400 |
393 // layout of Itab known to compilers | 401 // layout of Itab known to compilers |
394 struct Itab | 402 struct Itab |
395 { | 403 { |
396 InterfaceType* inter; | 404 InterfaceType* inter; |
397 Type* type; | 405 Type* type; |
398 Itab* link; | 406 Itab* link; |
399 int32 bad; | 407 int32 bad; |
400 int32 unused; | 408 int32 unused; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 // If this struct changes, adjust ../time/sleep.go:/runtimeTimer. | 450 // If this struct changes, adjust ../time/sleep.go:/runtimeTimer. |
443 struct Timer | 451 struct Timer |
444 { | 452 { |
445 int32 i; // heap index | 453 int32 i; // heap index |
446 | 454 |
447 // Timer wakes up at when, and then at when+period, ... (period > 0 only
) | 455 // Timer wakes up at when, and then at when+period, ... (period > 0 only
) |
448 // each time calling f(now, arg) in the timer goroutine, so f must be | 456 // each time calling f(now, arg) in the timer goroutine, so f must be |
449 // a well-behaved function and not block. | 457 // a well-behaved function and not block. |
450 int64 when; | 458 int64 when; |
451 int64 period; | 459 int64 period; |
452 » void» (*f)(int64, Eface); | 460 » FuncVal»*fv; |
453 Eface arg; | 461 Eface arg; |
454 }; | 462 }; |
455 | 463 |
456 // Lock-free stack node. | 464 // Lock-free stack node. |
457 struct LFNode | 465 struct LFNode |
458 { | 466 { |
459 LFNode *next; | 467 LFNode *next; |
460 uintptr pushcnt; | 468 uintptr pushcnt; |
461 }; | 469 }; |
462 | 470 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 /* | 586 /* |
579 * deferred subroutine calls | 587 * deferred subroutine calls |
580 */ | 588 */ |
581 struct Defer | 589 struct Defer |
582 { | 590 { |
583 int32 siz; | 591 int32 siz; |
584 bool special; // not part of defer frame | 592 bool special; // not part of defer frame |
585 bool free; // if special, free when done | 593 bool free; // if special, free when done |
586 byte* argp; // where args were copied from | 594 byte* argp; // where args were copied from |
587 byte* pc; | 595 byte* pc; |
588 » byte*» fn; | 596 » FuncVal*» fn; |
589 Defer* link; | 597 Defer* link; |
590 void* args[1]; // padded to actual size | 598 void* args[1]; // padded to actual size |
591 }; | 599 }; |
592 | 600 |
593 struct DeferChunk | 601 struct DeferChunk |
594 { | 602 { |
595 DeferChunk *prev; | 603 DeferChunk *prev; |
596 uintptr off; | 604 uintptr off; |
597 }; | 605 }; |
598 | 606 |
(...skipping 16 matching lines...) Expand all Loading... |
615 extern G* runtime·allg; | 623 extern G* runtime·allg; |
616 extern G* runtime·lastg; | 624 extern G* runtime·lastg; |
617 extern M* runtime·allm; | 625 extern M* runtime·allm; |
618 extern P** runtime·allp; | 626 extern P** runtime·allp; |
619 extern int32 runtime·gomaxprocs; | 627 extern int32 runtime·gomaxprocs; |
620 extern bool runtime·singleproc; | 628 extern bool runtime·singleproc; |
621 extern uint32 runtime·panicking; | 629 extern uint32 runtime·panicking; |
622 extern int32 runtime·gcwaiting; // gc is waiting to run | 630 extern int32 runtime·gcwaiting; // gc is waiting to run |
623 extern int8* runtime·goos; | 631 extern int8* runtime·goos; |
624 extern int32 runtime·ncpu; | 632 extern int32 runtime·ncpu; |
625 extern int32 runtime·gsignalstk; | |
626 extern bool runtime·iscgo; | 633 extern bool runtime·iscgo; |
627 extern void (*runtime·sysargs)(int32, uint8**); | 634 extern void (*runtime·sysargs)(int32, uint8**); |
628 extern uint32 runtime·maxstring; | 635 extern uint32 runtime·maxstring; |
| 636 extern uint32 runtime·Hchansize; |
629 | 637 |
630 /* | 638 /* |
631 * common functions and data | 639 * common functions and data |
632 */ | 640 */ |
633 int32 runtime·strcmp(byte*, byte*); | 641 int32 runtime·strcmp(byte*, byte*); |
634 byte* runtime·strstr(byte*, byte*); | 642 byte* runtime·strstr(byte*, byte*); |
635 int32 runtime·findnull(byte*); | 643 int32 runtime·findnull(byte*); |
636 int32 runtime·findnullw(uint16*); | 644 int32 runtime·findnullw(uint16*); |
637 void runtime·dump(byte*, int32); | 645 void runtime·dump(byte*, int32); |
638 int32 runtime·runetochar(byte*, int32); | 646 int32 runtime·runetochar(byte*, int32); |
639 int32 runtime·charntorune(int32*, uint8*, int32); | 647 int32 runtime·charntorune(int32*, uint8*, int32); |
640 | 648 |
641 /* | 649 /* |
642 * very low level c-called | 650 * very low level c-called |
643 */ | 651 */ |
644 #define FLUSH(x) USED(x) | 652 #define FLUSH(x) USED(x) |
645 | 653 |
646 void runtime·gogo(Gobuf*, uintptr); | 654 void runtime·gogo(Gobuf*, uintptr); |
647 void» runtime·gogocall(Gobuf*, void(*)(void)); | 655 void» runtime·gogocall(Gobuf*, void(*)(void), uintptr); |
| 656 void» runtime·gogocallfn(Gobuf*, FuncVal*); |
648 void runtime·gosave(Gobuf*); | 657 void runtime·gosave(Gobuf*); |
649 void runtime·lessstack(void); | 658 void runtime·lessstack(void); |
650 void runtime·goargs(void); | 659 void runtime·goargs(void); |
651 void runtime·goenvs(void); | 660 void runtime·goenvs(void); |
652 void runtime·goenvs_unix(void); | 661 void runtime·goenvs_unix(void); |
653 void* runtime·getu(void); | 662 void* runtime·getu(void); |
654 void runtime·throw(int8*); | 663 void runtime·throw(int8*); |
655 void runtime·panicstring(int8*); | 664 void runtime·panicstring(int8*); |
656 void runtime·prints(int8*); | 665 void runtime·prints(int8*); |
657 void runtime·printf(int8*, ...); | 666 void runtime·printf(int8*, ...); |
(...skipping 22 matching lines...) Expand all Loading... |
680 // this one is actually 'addx', that is, add-and-fetch. | 689 // this one is actually 'addx', that is, add-and-fetch. |
681 uint32 runtime·xadd(uint32 volatile*, int32); | 690 uint32 runtime·xadd(uint32 volatile*, int32); |
682 uint64 runtime·xadd64(uint64 volatile*, int64); | 691 uint64 runtime·xadd64(uint64 volatile*, int64); |
683 uint32 runtime·xchg(uint32 volatile*, uint32); | 692 uint32 runtime·xchg(uint32 volatile*, uint32); |
684 uint32 runtime·atomicload(uint32 volatile*); | 693 uint32 runtime·atomicload(uint32 volatile*); |
685 void runtime·atomicstore(uint32 volatile*, uint32); | 694 void runtime·atomicstore(uint32 volatile*, uint32); |
686 void runtime·atomicstore64(uint64 volatile*, uint64); | 695 void runtime·atomicstore64(uint64 volatile*, uint64); |
687 uint64 runtime·atomicload64(uint64 volatile*); | 696 uint64 runtime·atomicload64(uint64 volatile*); |
688 void* runtime·atomicloadp(void* volatile*); | 697 void* runtime·atomicloadp(void* volatile*); |
689 void runtime·atomicstorep(void* volatile*, void*); | 698 void runtime·atomicstorep(void* volatile*, void*); |
690 void» runtime·jmpdefer(byte*, void*); | 699 void» runtime·jmpdefer(FuncVal*, void*); |
691 void runtime·exit1(int32); | 700 void runtime·exit1(int32); |
692 void runtime·ready(G*); | 701 void runtime·ready(G*); |
693 byte* runtime·getenv(int8*); | 702 byte* runtime·getenv(int8*); |
694 int32 runtime·atoi(byte*); | 703 int32 runtime·atoi(byte*); |
695 void runtime·newosproc(M *mp, G *gp, void *stk, void (*fn)(void)); | 704 void runtime·newosproc(M *mp, G *gp, void *stk, void (*fn)(void)); |
696 G* runtime·malg(int32); | 705 G* runtime·malg(int32); |
697 void runtime·asminit(void); | 706 void runtime·asminit(void); |
| 707 void runtime·mpreinit(M*); |
698 void runtime·minit(void); | 708 void runtime·minit(void); |
699 void runtime·mstart(void); | |
700 void runtime·unminit(void); | 709 void runtime·unminit(void); |
701 void runtime·signalstack(byte*, int32); | 710 void runtime·signalstack(byte*, int32); |
702 Func* runtime·findfunc(uintptr); | 711 Func* runtime·findfunc(uintptr); |
703 int32 runtime·funcline(Func*, uintptr); | 712 int32 runtime·funcline(Func*, uintptr); |
704 void* runtime·stackalloc(uint32); | 713 void* runtime·stackalloc(uint32); |
705 void runtime·stackfree(void*, uintptr); | 714 void runtime·stackfree(void*, uintptr); |
706 MCache* runtime·allocmcache(void); | 715 MCache* runtime·allocmcache(void); |
707 void runtime·freemcache(MCache*); | 716 void runtime·freemcache(MCache*); |
708 void runtime·mallocinit(void); | 717 void runtime·mallocinit(void); |
709 void runtime·mprofinit(void); | 718 void runtime·mprofinit(void); |
710 bool runtime·ifaceeq_c(Iface, Iface); | 719 bool runtime·ifaceeq_c(Iface, Iface); |
711 bool runtime·efaceeq_c(Eface, Eface); | 720 bool runtime·efaceeq_c(Eface, Eface); |
712 uintptr runtime·ifacehash(Iface, uintptr); | 721 uintptr runtime·ifacehash(Iface, uintptr); |
713 uintptr runtime·efacehash(Eface, uintptr); | 722 uintptr runtime·efacehash(Eface, uintptr); |
714 void* runtime·malloc(uintptr size); | 723 void* runtime·malloc(uintptr size); |
715 void runtime·free(void *v); | 724 void runtime·free(void *v); |
716 bool» runtime·addfinalizer(void*, void(*fn)(void*), uintptr); | 725 bool» runtime·addfinalizer(void*, FuncVal *fn, uintptr); |
717 void runtime·runpanic(Panic*); | 726 void runtime·runpanic(Panic*); |
718 void* runtime·getcallersp(void*); | 727 void* runtime·getcallersp(void*); |
719 int32 runtime·mcount(void); | 728 int32 runtime·mcount(void); |
720 int32 runtime·gcount(void); | 729 int32 runtime·gcount(void); |
721 void runtime·mcall(void(*)(G*)); | 730 void runtime·mcall(void(*)(G*)); |
722 uint32 runtime·fastrand1(void); | 731 uint32 runtime·fastrand1(void); |
723 | 732 |
724 void runtime·setmg(M*, G*); | 733 void runtime·setmg(M*, G*); |
725 void runtime·newextram(void); | 734 void runtime·newextram(void); |
726 void runtime·exit(int32); | 735 void runtime·exit(int32); |
727 void runtime·breakpoint(void); | 736 void runtime·breakpoint(void); |
728 void runtime·gosched(void); | 737 void runtime·gosched(void); |
729 void runtime·park(void(*)(Lock*), Lock*, int8*); | 738 void runtime·park(void(*)(Lock*), Lock*, int8*); |
730 void runtime·tsleep(int64, int8*); | 739 void runtime·tsleep(int64, int8*); |
731 M* runtime·newm(void); | 740 M* runtime·newm(void); |
732 void runtime·goexit(void); | 741 void runtime·goexit(void); |
733 void runtime·asmcgocall(void (*fn)(void*), void*); | 742 void runtime·asmcgocall(void (*fn)(void*), void*); |
734 void runtime·entersyscall(void); | 743 void runtime·entersyscall(void); |
735 void runtime·entersyscallblock(void); | 744 void runtime·entersyscallblock(void); |
736 void runtime·exitsyscall(void); | 745 void runtime·exitsyscall(void); |
737 G*» runtime·newproc1(byte*, byte*, int32, int32, void*); | 746 G*» runtime·newproc1(FuncVal*, byte*, int32, int32, void*); |
738 bool runtime·sigsend(int32 sig); | 747 bool runtime·sigsend(int32 sig); |
739 int32 runtime·callers(int32, uintptr*, int32); | 748 int32 runtime·callers(int32, uintptr*, int32); |
740 int32 runtime·gentraceback(byte*, byte*, byte*, G*, int32, uintptr*, int32); | 749 int32 runtime·gentraceback(byte*, byte*, byte*, G*, int32, uintptr*, int32); |
741 int64 runtime·nanotime(void); | 750 int64 runtime·nanotime(void); |
742 void runtime·dopanic(int32); | 751 void runtime·dopanic(int32); |
743 void runtime·startpanic(void); | 752 void runtime·startpanic(void); |
744 void runtime·unwindstack(G*, byte*); | 753 void runtime·unwindstack(G*, byte*); |
745 void runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp); | 754 void runtime·sigprof(uint8 *pc, uint8 *sp, uint8 *lr, G *gp); |
746 void runtime·resetcpuprofiler(int32); | 755 void runtime·resetcpuprofiler(int32); |
747 void runtime·setcpuprofilerate(void(*)(uintptr*, int32), int32); | 756 void runtime·setcpuprofilerate(void(*)(uintptr*, int32), int32); |
748 void runtime·usleep(uint32); | 757 void runtime·usleep(uint32); |
749 int64 runtime·cputicks(void); | 758 int64 runtime·cputicks(void); |
750 G* runtime·netwait(uint32, uint32); | |
751 bool runtime·addtimer(Timer*); | |
752 bool runtime·deltimer(Timer*); | |
753 int64 runtime·tickspersecond(void); | 759 int64 runtime·tickspersecond(void); |
754 void runtime·blockevent(int64, int32); | 760 void runtime·blockevent(int64, int32); |
755 extern int64 runtime·blockprofilerate; | 761 extern int64 runtime·blockprofilerate; |
756 | 762 |
757 #pragma varargck argpos runtime·printf 1 | 763 #pragma varargck argpos runtime·printf 1 |
758 #pragma varargck type "d" int32 | 764 #pragma varargck type "d" int32 |
759 #pragma varargck type "d" uint32 | 765 #pragma varargck type "d" uint32 |
760 #pragma varargck type "D" int64 | 766 #pragma varargck type "D" int64 |
761 #pragma varargck type "D" uint64 | 767 #pragma varargck type "D" uint64 |
762 #pragma varargck type "x" int32 | 768 #pragma varargck type "x" int32 |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
866 void runtime·printint(int64); | 872 void runtime·printint(int64); |
867 void runtime·printiface(Iface); | 873 void runtime·printiface(Iface); |
868 void runtime·printeface(Eface); | 874 void runtime·printeface(Eface); |
869 void runtime·printstring(String); | 875 void runtime·printstring(String); |
870 void runtime·printpc(void*); | 876 void runtime·printpc(void*); |
871 void runtime·printpointer(void*); | 877 void runtime·printpointer(void*); |
872 void runtime·printuint(uint64); | 878 void runtime·printuint(uint64); |
873 void runtime·printhex(uint64); | 879 void runtime·printhex(uint64); |
874 void runtime·printslice(Slice); | 880 void runtime·printslice(Slice); |
875 void runtime·printcomplex(Complex128); | 881 void runtime·printcomplex(Complex128); |
876 void» reflect·call(byte*, byte*, uint32); | 882 void» reflect·call(FuncVal*, byte*, uint32); |
877 void runtime·panic(Eface); | 883 void runtime·panic(Eface); |
878 void runtime·panicindex(void); | 884 void runtime·panicindex(void); |
879 void runtime·panicslice(void); | 885 void runtime·panicslice(void); |
880 | 886 |
881 /* | 887 /* |
882 * runtime c-called (but written in Go) | 888 * runtime c-called (but written in Go) |
883 */ | 889 */ |
884 void runtime·printany(Eface); | 890 void runtime·printany(Eface); |
885 void runtime·newTypeAssertionError(String*, String*, String*, String*, Eface*
); | 891 void runtime·newTypeAssertionError(String*, String*, String*, String*, Eface*
); |
886 void runtime·newErrorString(String, Eface*); | 892 void runtime·newErrorString(String, Eface*); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 extern float64 runtime·nan; | 953 extern float64 runtime·nan; |
948 extern float64 runtime·posinf; | 954 extern float64 runtime·posinf; |
949 extern float64 runtime·neginf; | 955 extern float64 runtime·neginf; |
950 extern uint64 ·nan; | 956 extern uint64 ·nan; |
951 extern uint64 ·posinf; | 957 extern uint64 ·posinf; |
952 extern uint64 ·neginf; | 958 extern uint64 ·neginf; |
953 #define ISNAN(f) ((f) != (f)) | 959 #define ISNAN(f) ((f) != (f)) |
954 | 960 |
955 enum | 961 enum |
956 { | 962 { |
957 » UseSpanType = 0, | 963 » UseSpanType = 1, |
958 }; | 964 }; |
LEFT | RIGHT |