c/syscall/unix

This commit is contained in:
xushiwei
2024-07-12 00:59:32 +08:00
parent 11682e487e
commit 68f70af2f3
12 changed files with 153 additions and 3 deletions

View File

@@ -0,0 +1,10 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix
const AT_REMOVEDIR = 0x80
const AT_SYMLINK_NOFOLLOW = 0x0020
const UTIME_OMIT = -0x2

View File

@@ -0,0 +1,16 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix
import "syscall"
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
const openatTrap uintptr = syscall.SYS_OPENAT
const fstatatTrap uintptr = syscall.SYS_FSTATAT
const AT_REMOVEDIR = 0x2
const AT_SYMLINK_NOFOLLOW = 0x1
const UTIME_OMIT = -0x1

View File

@@ -0,0 +1,18 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix
import "syscall"
const (
AT_REMOVEDIR = 0x800
AT_SYMLINK_NOFOLLOW = 0x200
UTIME_OMIT = -0x2
unlinkatTrap uintptr = syscall.SYS_UNLINKAT
openatTrap uintptr = syscall.SYS_OPENAT
posixFallocateTrap uintptr = syscall.SYS_POSIX_FALLOCATE
)

View File

@@ -0,0 +1,11 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build arm || mips || mipsle || 386
package unix
import "syscall"
const fstatatTrap uintptr = syscall.SYS_FSTATAT64

View File

@@ -0,0 +1,11 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build arm64 || riscv64
package unix
import "syscall"
const fstatatTrap uintptr = syscall.SYS_FSTATAT

View File

@@ -0,0 +1,19 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix
import "syscall"
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
const openatTrap uintptr = syscall.SYS_OPENAT
const (
AT_EACCESS = 0x200
AT_FDCWD = -0x64
AT_REMOVEDIR = 0x200
AT_SYMLINK_NOFOLLOW = 0x100
UTIME_OMIT = 0x3ffffffe
)

View File

@@ -0,0 +1,16 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix
import "syscall"
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
const openatTrap uintptr = syscall.SYS_OPENAT
const fstatatTrap uintptr = syscall.SYS_FSTATAT
const AT_REMOVEDIR = 0x800
const AT_SYMLINK_NOFOLLOW = 0x200
const UTIME_OMIT = (1 << 30) - 2

View File

@@ -0,0 +1,11 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build amd64 || mips64 || mips64le || ppc64 || ppc64le || s390x
package unix
import "syscall"
const fstatatTrap uintptr = syscall.SYS_NEWFSTATAT

View File

@@ -0,0 +1,16 @@
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package unix
import "syscall"
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
const openatTrap uintptr = syscall.SYS_OPENAT
const fstatatTrap uintptr = syscall.SYS_FSTATAT
const AT_REMOVEDIR = 0x08
const AT_SYMLINK_NOFOLLOW = 0x02
const UTIME_OMIT = -0x1

View File

@@ -4,8 +4,12 @@
package exec package exec
import "syscall" import (
"syscall"
"github.com/goplus/llgo/c/syscall/unix"
)
func unixEaccess(path string, mode uint32) error { func unixEaccess(path string, mode uint32) error {
return syscall.Faccessat(AT_FDCWD, path, mode, AT_EACCESS) return syscall.Faccessat(unix.AT_FDCWD, path, mode, unix.AT_EACCESS)
} }

View File

@@ -7,7 +7,6 @@
package os package os
import ( import (
"io/fs"
"runtime" "runtime"
) )
@@ -173,7 +172,10 @@ func (d *unixDirent) Info() (FileInfo, error) {
} }
func (d *unixDirent) String() string { func (d *unixDirent) String() string {
/* TODO(xsw):
return fs.FormatDirEntry(d) return fs.FormatDirEntry(d)
*/
panic("todo: os.unixDirent.String")
} }
/* TODO(xsw): /* TODO(xsw):

View File

@@ -0,0 +1,16 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Linux system calls.
// This file is compiled as ordinary Go code,
// but it is also input to mksyscall,
// which parses the //sys lines and generates system call stubs.
// Note that sometimes we use a lowercase //sys name and
// wrap it in our own nicer implementation.
package syscall
func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
panic("todo: syscall.Faccessat")
}