generalize -scheduler=none to support most platforms
Этот коммит содержится в:
родитель
5089d1a5a7
коммит
5d869f6042
12 изменённых файлов: 48 добавлений и 40 удалений
|
@ -30,20 +30,16 @@ var _sidata [0]byte
|
||||||
//go:extern _edata
|
//go:extern _edata
|
||||||
var _edata [0]byte
|
var _edata [0]byte
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
// Entry point for Go. Initialize all packages and call main.main().
|
// Entry point for Go. Initialize all packages and call main.main().
|
||||||
//go:export main
|
//go:export main
|
||||||
func main() {
|
func main() {
|
||||||
// Initialize .data and .bss sections.
|
// Initialize .data and .bss sections.
|
||||||
preinit()
|
preinit()
|
||||||
|
|
||||||
// Run initializers of all packages.
|
// Run program.
|
||||||
initAll()
|
run()
|
||||||
|
|
||||||
// Compiler-generated call to main.main().
|
|
||||||
go callMain()
|
|
||||||
|
|
||||||
// Run the scheduler.
|
|
||||||
scheduler()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func preinit() {
|
func preinit() {
|
||||||
|
|
|
@ -13,12 +13,12 @@ import (
|
||||||
|
|
||||||
type timeUnit int64
|
type timeUnit int64
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//go:export Reset_Handler
|
//go:export Reset_Handler
|
||||||
func main() {
|
func main() {
|
||||||
preinit()
|
preinit()
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,12 +12,12 @@ import (
|
||||||
|
|
||||||
type timeUnit int64
|
type timeUnit int64
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//go:export Reset_Handler
|
//go:export Reset_Handler
|
||||||
func main() {
|
func main() {
|
||||||
preinit()
|
preinit()
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,7 @@ var _ebss [0]byte
|
||||||
//go:export main
|
//go:export main
|
||||||
func main() {
|
func main() {
|
||||||
preinit()
|
preinit()
|
||||||
initAll()
|
run()
|
||||||
postinit()
|
|
||||||
callMain()
|
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,12 @@ const tickMicros = 1
|
||||||
|
|
||||||
var timestamp timeUnit
|
var timestamp timeUnit
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//go:export Reset_Handler
|
//go:export Reset_Handler
|
||||||
func main() {
|
func main() {
|
||||||
preinit()
|
preinit()
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
arm.SemihostingCall(arm.SemihostingReportException, arm.SemihostingApplicationExit)
|
arm.SemihostingCall(arm.SemihostingReportException, arm.SemihostingApplicationExit)
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@ var _sidata [0]byte
|
||||||
//go:extern _edata
|
//go:extern _edata
|
||||||
var _edata [0]byte
|
var _edata [0]byte
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//go:export main
|
//go:export main
|
||||||
func main() {
|
func main() {
|
||||||
// Zero the PLIC enable bits on startup: they are not zeroed at reset.
|
// Zero the PLIC enable bits on startup: they are not zeroed at reset.
|
||||||
|
@ -51,9 +53,7 @@ func main() {
|
||||||
|
|
||||||
preinit()
|
preinit()
|
||||||
initPeripherals()
|
initPeripherals()
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,13 @@ const tickMicros = 1024 * 32
|
||||||
//go:linkname systemInit SystemInit
|
//go:linkname systemInit SystemInit
|
||||||
func systemInit()
|
func systemInit()
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//go:export Reset_Handler
|
//go:export Reset_Handler
|
||||||
func main() {
|
func main() {
|
||||||
systemInit()
|
systemInit()
|
||||||
preinit()
|
preinit()
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@ package runtime
|
||||||
|
|
||||||
type timeUnit int64
|
type timeUnit int64
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//go:export Reset_Handler
|
//go:export Reset_Handler
|
||||||
func main() {
|
func main() {
|
||||||
preinit()
|
preinit()
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
abort()
|
abort()
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,17 +45,12 @@ type timespec struct {
|
||||||
|
|
||||||
const CLOCK_MONOTONIC_RAW = 4
|
const CLOCK_MONOTONIC_RAW = 4
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
// Entry point for Go. Initialize all packages and call main.main().
|
// Entry point for Go. Initialize all packages and call main.main().
|
||||||
//go:export main
|
//go:export main
|
||||||
func main() int {
|
func main() int {
|
||||||
// Run initializers of all packages.
|
run()
|
||||||
initAll()
|
|
||||||
|
|
||||||
// Compiler-generated call to main.main().
|
|
||||||
go callMain()
|
|
||||||
|
|
||||||
// Run scheduler.
|
|
||||||
scheduler()
|
|
||||||
|
|
||||||
// For libc compatibility.
|
// For libc compatibility.
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -18,11 +18,11 @@ type wasiIOVec struct {
|
||||||
//export fd_write
|
//export fd_write
|
||||||
func fd_write(id uint32, iovs *wasiIOVec, iovs_len uint, nwritten *uint) (errno uint)
|
func fd_write(id uint32, iovs *wasiIOVec, iovs_len uint, nwritten *uint) (errno uint)
|
||||||
|
|
||||||
|
func postinit() {}
|
||||||
|
|
||||||
//export _start
|
//export _start
|
||||||
func _start() {
|
func _start() {
|
||||||
initAll()
|
run()
|
||||||
go callMain()
|
|
||||||
scheduler()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Using global variables to avoid heap allocation.
|
// Using global variables to avoid heap allocation.
|
||||||
|
|
|
@ -10,3 +10,14 @@ func sleep(duration int64) {
|
||||||
addSleepTask(task.Current(), duration)
|
addSleepTask(task.Current(), duration)
|
||||||
task.Pause()
|
task.Pause()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// run is called by the program entry point to execute the go program.
|
||||||
|
// With a scheduler, init and the main function are invoked in a goroutine before starting the scheduler.
|
||||||
|
func run() {
|
||||||
|
initAll()
|
||||||
|
postinit()
|
||||||
|
go func() {
|
||||||
|
callMain()
|
||||||
|
}()
|
||||||
|
scheduler()
|
||||||
|
}
|
||||||
|
|
|
@ -12,3 +12,11 @@ func sleep(duration int64) {
|
||||||
func getSystemStackPointer() uintptr {
|
func getSystemStackPointer() uintptr {
|
||||||
return getCurrentStackPointer()
|
return getCurrentStackPointer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// run is called by the program entry point to execute the go program.
|
||||||
|
// With the "none" scheduler, init and the main function are invoked directly.
|
||||||
|
func run() {
|
||||||
|
initAll()
|
||||||
|
postinit()
|
||||||
|
callMain()
|
||||||
|
}
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче