-2e623bff8a5855bb6268c69bb04eb37cac8f2dc2
+95784e8eec75cfeb2363fb22b51085380e564af9
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
func entersyscall()
func entersyscallblock()
-// For gccgo to call from C code, so that the C code and the Go code
-// can share the memstats variable for now.
-//go:linkname getMstats runtime.getMstats
-func getMstats() *mstats {
- return &memstats
-}
-
// Get signal trampoline, written in C.
func getSigtramp() uintptr
// Implemented in C for gccgo.
func setRandomNumber(uint32)
-// Temporary for gccgo until we port proc.go.
-//go:linkname getsched runtime.getsched
-func getsched() *schedt {
- return &sched
-}
-
-// Temporary for gccgo until we port proc.go.
-//go:linkname getCgoHasExtraM runtime.getCgoHasExtraM
-func getCgoHasExtraM() *bool {
- return &cgoHasExtraM
-}
-
-// Temporary for gccgo until we port proc.go.
-//go:linkname getAllP runtime.getAllP
-func getAllP() **p {
- return &allp[0]
-}
-
-// Temporary for gccgo until we port proc.go.
+// Called by gccgo's proc.c.
//go:linkname allocg runtime.allocg
func allocg() *g {
return new(g)
}
-// Temporary for gccgo until we port the garbage collector.
-//go:linkname getallglen runtime.getallglen
-func getallglen() uintptr {
- return allglen
-}
-
-// Temporary for gccgo until we port the garbage collector.
-//go:linkname getallg runtime.getallg
-func getallg(i int) *g {
- return allgs[i]
-}
-
-// Temporary for gccgo until we port the garbage collector.
-//go:linkname getallm runtime.getallm
-func getallm() *m {
- return allm
-}
-
// Throw and rethrow an exception.
func throwException()
func rethrowException()
// used by the stack unwinder.
func unwindExceptionSize() uintptr
-// Temporary for gccgo until C code no longer needs it.
-//go:nosplit
-//go:linkname getPanicking runtime.getPanicking
-func getPanicking() uint32 {
- return panicking
-}
-
// Called by C code to set the number of CPUs.
//go:linkname setncpu runtime.setncpu
func setncpu(n int32) {
}
}
-// Called by C code during library initialization.
-//go:linkname runtime_m0 runtime.runtime_m0
-func runtime_m0() *m {
- return &m0
-}
-
-// Temporary for gccgo until we port mgc.go.
-//go:linkname runtime_g0 runtime.runtime_g0
-func runtime_g0() *g {
- return &g0
-}
-
const uintptrMask = 1<<(8*sys.PtrSize) - 1
type bitvector struct {
runtime_args (a->argc, (byte **) a->argv);
setncpu (getproccount ());
setpagesize (getpagesize ());
- runtime_sched = runtime_getsched();
runtime_schedinit ();
__go_go ((uintptr)(runtime_main), NULL);
runtime_mstart (runtime_m ());
runtime_args (argc, (byte **) argv);
setncpu (getproccount ());
setpagesize (getpagesize ());
- runtime_sched = runtime_getsched();
runtime_schedinit ();
__go_go ((uintptr)(runtime_main), NULL);
runtime_mstart (runtime_m ());
extern G* allocg(void)
__asm__ (GOSYM_PREFIX "runtime.allocg");
-Sched* runtime_sched;
-
bool runtime_isarchive;
extern void kickoff(void)
newg->gcnextsp2 = (uintptr)(newg->gcinitialsp2);
#endif
}
-
-// Return whether we are waiting for a GC. This gc toolchain uses
-// preemption instead.
-bool
-runtime_gcwaiting(void)
-{
- return runtime_sched->gcwaiting;
-}
extern G* runtime_g(void)
__asm__(GOSYM_PREFIX "runtime.getg");
-extern M* runtime_m0(void)
- __asm__(GOSYM_PREFIX "runtime.runtime_m0");
-extern G* runtime_g0(void)
- __asm__(GOSYM_PREFIX "runtime.runtime_g0");
-
enum
{
true = 1,
*/
extern uintptr* runtime_getZerobase(void)
__asm__(GOSYM_PREFIX "runtime.getZerobase");
-extern G* runtime_getallg(intgo)
- __asm__(GOSYM_PREFIX "runtime.getallg");
-extern uintptr runtime_getallglen(void)
- __asm__(GOSYM_PREFIX "runtime.getallglen");
-extern M* runtime_getallm(void)
- __asm__(GOSYM_PREFIX "runtime.getallm");
-extern Sched* runtime_sched;
-extern uint32 runtime_panicking(void)
- __asm__ (GOSYM_PREFIX "runtime.getPanicking");
extern bool runtime_isstarted;
extern bool runtime_isarchive;
#define PREFETCH(p) __builtin_prefetch(p)
-bool runtime_gcwaiting(void);
void runtime_badsignal(int);
Defer* runtime_newdefer(void);
void runtime_freedefer(Defer*);