79 lines
1.6 KiB
Go
79 lines
1.6 KiB
Go
package libuv
|
|
|
|
import (
|
|
_ "unsafe"
|
|
|
|
"github.com/goplus/llgo/c"
|
|
)
|
|
|
|
type Thread struct {
|
|
Unused [8]byte
|
|
}
|
|
|
|
type ThreadOptions struct {
|
|
flags c.Uint
|
|
stackSize uintptr
|
|
}
|
|
|
|
type Work struct {
|
|
Unused [128]byte
|
|
}
|
|
|
|
// ----------------------------------------------
|
|
|
|
/* Function type */
|
|
|
|
// llgo:type C
|
|
type ThreadCb func(arg c.Pointer)
|
|
|
|
//llgo:type C
|
|
type WorkCb func(req *Work)
|
|
|
|
//llgo:type C
|
|
type AfterWorkCb func(req *Work, status c.Int)
|
|
|
|
// ----------------------------------------------
|
|
|
|
/* Thread related functions and method. */
|
|
|
|
//go:linkname ThreadEqual C.uv_thread_equal
|
|
func ThreadEqual(t1 *Thread, t2 *Thread) c.Int
|
|
|
|
//go:linkname ThreadGetCPU C.uv_thread_getcpu
|
|
func ThreadGetCPU() c.Int
|
|
|
|
//go:linkname ThreadSelf C.uv_thread_self
|
|
func ThreadSelf() Thread
|
|
|
|
// llgo:link (*Thread).Create C.uv_thread_create
|
|
func (t *Thread) Create(entry ThreadCb, arg c.Pointer) c.Int {
|
|
return 0
|
|
}
|
|
|
|
// llgo:link (*Thread).CreateEx C.uv_thread_create_ex
|
|
func (t *Thread) CreateEx(entry ThreadCb, params *ThreadOptions, arg c.Pointer) c.Int {
|
|
return 0
|
|
}
|
|
|
|
// llgo:link (*Thread).Join C.uv_thread_join
|
|
func (t *Thread) Join() c.Int {
|
|
return 0
|
|
}
|
|
|
|
// llgo:link (*Thread).SetAffinity C.uv_thread_set_affinity
|
|
func (t *Thread) SetAffinity(cpuMask *c.Char, oldMask *c.Char, maskSize uintptr) c.Int {
|
|
return 0
|
|
}
|
|
|
|
// llgo:link (*Thread).GetAffinity C.uv_thread_get_affinity
|
|
func (t *Thread) GetAffinity(cpuMask *c.Char, maskSize uintptr) c.Int {
|
|
return 0
|
|
}
|
|
|
|
// ----------------------------------------------
|
|
|
|
/* Work related functions and method. */
|
|
|
|
//go:linkname QueueWork C.uv_queue_work
|
|
func QueueWork(loop *Loop, req *Work, workCb WorkCb, afterWorkCb AfterWorkCb) c.Int
|