runtime: testing runtime
This commit is contained in:
@@ -17,16 +17,20 @@
|
||||
package syscall
|
||||
|
||||
import (
|
||||
origSyscall "syscall"
|
||||
"unsafe"
|
||||
|
||||
c "github.com/goplus/llgo/runtime/internal/clite"
|
||||
"github.com/goplus/llgo/runtime/internal/clite/os"
|
||||
"github.com/goplus/llgo/runtime/internal/clite/syscall"
|
||||
"github.com/goplus/llgo/runtime/internal/lib/internal/bytealg"
|
||||
)
|
||||
|
||||
// llgo:skipall
|
||||
type _syscall struct{}
|
||||
|
||||
type Iovec syscall.Iovec
|
||||
|
||||
type Timespec syscall.Timespec
|
||||
type Timeval syscall.Timeval
|
||||
|
||||
@@ -192,3 +196,24 @@ func setrlimit(which int, lim *Rlimit) (err error) {
|
||||
}
|
||||
return Errno(ret)
|
||||
}
|
||||
|
||||
func BytePtrFromString(s string) (*byte, error) {
|
||||
a, err := ByteSliceFromString(s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &a[0], nil
|
||||
}
|
||||
|
||||
func ByteSliceFromString(s string) ([]byte, error) {
|
||||
if bytealg.IndexByteString(s, 0) != -1 {
|
||||
return nil, Errno(syscall.EINVAL)
|
||||
}
|
||||
a := make([]byte, len(s)+1)
|
||||
copy(a, s)
|
||||
return a, nil
|
||||
}
|
||||
|
||||
func Accept(fd int) (nfd int, sa origSyscall.Sockaddr, err error) {
|
||||
panic("todo: syscall.Accept")
|
||||
}
|
||||
|
||||
5
runtime/internal/lib/syscall/syscall_darwin.go
Normal file
5
runtime/internal/lib/syscall/syscall_darwin.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package syscall
|
||||
|
||||
func Sysctl(key string) (string, error) {
|
||||
panic("todo: syscall.Sysctl")
|
||||
}
|
||||
@@ -12,6 +12,7 @@
|
||||
package syscall
|
||||
|
||||
import (
|
||||
origSyscall "syscall"
|
||||
_ "unsafe"
|
||||
|
||||
c "github.com/goplus/llgo/runtime/internal/clite"
|
||||
@@ -126,3 +127,11 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
|
||||
func faccessat(dirfd c.Int, path *c.Char, mode c.Int, flags c.Int) c.Int
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
func Accept4(fd int, flags int) (nfd int, sa origSyscall.Sockaddr, err error) {
|
||||
panic("todo: syscall.Accept4")
|
||||
}
|
||||
|
||||
func Uname(buf *origSyscall.Utsname) (err error) {
|
||||
panic("todo: syscall.Uname")
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ var (
|
||||
|
||||
type Errno uintptr
|
||||
|
||||
type Dirent = syscall.Dirent
|
||||
|
||||
func (e Errno) Error() string {
|
||||
ret := c.Strerror(c.Int(e))
|
||||
return unsafe.String((*byte)(unsafe.Pointer(ret)), c.Strlen(ret))
|
||||
@@ -69,3 +71,11 @@ func (s Signal) String() string {
|
||||
*/
|
||||
panic("todo: syscall.Signal.String")
|
||||
}
|
||||
|
||||
func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
|
||||
panic("todo: syscall.Mmap")
|
||||
}
|
||||
|
||||
func Munmap(b []byte) (err error) {
|
||||
panic("todo: syscall.Munmap")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user