Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F12142545
syscall_linux_riscv64.go
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
syscall_linux_riscv64.go
View Options
// 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.
// +build riscv64,linux
package
unix
import
"unsafe"
func
EpollCreate
(
size
int
)
(
fd
int
,
err
error
)
{
if
size
<=
0
{
return
-
1
,
EINVAL
}
return
EpollCreate1
(
0
)
}
//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
//sys Fchown(fd int, uid int, gid int) (err error)
//sys Fstat(fd int, stat *Stat_t) (err error)
//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
//sys Ftruncate(fd int, length int64) (err error)
//sysnb Getegid() (egid int)
//sysnb Geteuid() (euid int)
//sysnb Getgid() (gid int)
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
//sysnb Getuid() (uid int)
//sys Listen(s int, n int) (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
func
Select
(
nfd
int
,
r
*
FdSet
,
w
*
FdSet
,
e
*
FdSet
,
timeout
*
Timeval
)
(
n
int
,
err
error
)
{
var
ts
*
Timespec
if
timeout
!=
nil
{
ts
=
&
Timespec
{
Sec
:
timeout
.
Sec
,
Nsec
:
timeout
.
Usec
*
1000
}
}
return
Pselect
(
nfd
,
r
,
w
,
e
,
ts
,
nil
)
}
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
//sys Setfsgid(gid int) (err error)
//sys Setfsuid(uid int) (err error)
//sysnb Setregid(rgid int, egid int) (err error)
//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
//sysnb Setresuid(ruid int, euid int, suid int) (err error)
//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
//sysnb Setreuid(ruid int, euid int) (err error)
//sys Shutdown(fd int, how int) (err error)
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
func
Stat
(
path
string
,
stat
*
Stat_t
)
(
err
error
)
{
return
Fstatat
(
AT_FDCWD
,
path
,
stat
,
0
)
}
func
Lchown
(
path
string
,
uid
int
,
gid
int
)
(
err
error
)
{
return
Fchownat
(
AT_FDCWD
,
path
,
uid
,
gid
,
AT_SYMLINK_NOFOLLOW
)
}
func
Lstat
(
path
string
,
stat
*
Stat_t
)
(
err
error
)
{
return
Fstatat
(
AT_FDCWD
,
path
,
stat
,
AT_SYMLINK_NOFOLLOW
)
}
//sys Statfs(path string, buf *Statfs_t) (err error)
//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
//sys Truncate(path string, length int64) (err error)
func
Ustat
(
dev
int
,
ubuf
*
Ustat_t
)
(
err
error
)
{
return
ENOSYS
}
//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
//sysnb setgroups(n int, list *_Gid_t) (err error)
//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
//sysnb socket(domain int, typ int, proto int) (fd int, err error)
//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
//sysnb Gettimeofday(tv *Timeval) (err error)
func
setTimespec
(
sec
,
nsec
int64
)
Timespec
{
return
Timespec
{
Sec
:
sec
,
Nsec
:
nsec
}
}
func
setTimeval
(
sec
,
usec
int64
)
Timeval
{
return
Timeval
{
Sec
:
sec
,
Usec
:
usec
}
}
func
futimesat
(
dirfd
int
,
path
string
,
tv
*
[
2
]
Timeval
)
(
err
error
)
{
if
tv
==
nil
{
return
utimensat
(
dirfd
,
path
,
nil
,
0
)
}
ts
:=
[]
Timespec
{
NsecToTimespec
(
TimevalToNsec
(
tv
[
0
])),
NsecToTimespec
(
TimevalToNsec
(
tv
[
1
])),
}
return
utimensat
(
dirfd
,
path
,
(
*
[
2
]
Timespec
)(
unsafe
.
Pointer
(
&
ts
[
0
])),
0
)
}
func
Time
(
t
*
Time_t
)
(
Time_t
,
error
)
{
var
tv
Timeval
err
:=
Gettimeofday
(
&
tv
)
if
err
!=
nil
{
return
0
,
err
}
if
t
!=
nil
{
*
t
=
Time_t
(
tv
.
Sec
)
}
return
Time_t
(
tv
.
Sec
),
nil
}
func
Utime
(
path
string
,
buf
*
Utimbuf
)
error
{
tv
:=
[]
Timeval
{
{
Sec
:
buf
.
Actime
},
{
Sec
:
buf
.
Modtime
},
}
return
Utimes
(
path
,
tv
)
}
func
utimes
(
path
string
,
tv
*
[
2
]
Timeval
)
(
err
error
)
{
if
tv
==
nil
{
return
utimensat
(
AT_FDCWD
,
path
,
nil
,
0
)
}
ts
:=
[]
Timespec
{
NsecToTimespec
(
TimevalToNsec
(
tv
[
0
])),
NsecToTimespec
(
TimevalToNsec
(
tv
[
1
])),
}
return
utimensat
(
AT_FDCWD
,
path
,
(
*
[
2
]
Timespec
)(
unsafe
.
Pointer
(
&
ts
[
0
])),
0
)
}
func
Pipe
(
p
[]
int
)
(
err
error
)
{
if
len
(
p
)
!=
2
{
return
EINVAL
}
var
pp
[
2
]
_C_int
err
=
pipe2
(
&
pp
,
0
)
p
[
0
]
=
int
(
pp
[
0
])
p
[
1
]
=
int
(
pp
[
1
])
return
}
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
func
Pipe2
(
p
[]
int
,
flags
int
)
(
err
error
)
{
if
len
(
p
)
!=
2
{
return
EINVAL
}
var
pp
[
2
]
_C_int
err
=
pipe2
(
&
pp
,
flags
)
p
[
0
]
=
int
(
pp
[
0
])
p
[
1
]
=
int
(
pp
[
1
])
return
}
func
(
r
*
PtraceRegs
)
PC
()
uint64
{
return
r
.
Pc
}
func
(
r
*
PtraceRegs
)
SetPC
(
pc
uint64
)
{
r
.
Pc
=
pc
}
func
(
iov
*
Iovec
)
SetLen
(
length
int
)
{
iov
.
Len
=
uint64
(
length
)
}
func
(
msghdr
*
Msghdr
)
SetControllen
(
length
int
)
{
msghdr
.
Controllen
=
uint64
(
length
)
}
func
(
cmsg
*
Cmsghdr
)
SetLen
(
length
int
)
{
cmsg
.
Len
=
uint64
(
length
)
}
func
InotifyInit
()
(
fd
int
,
err
error
)
{
return
InotifyInit1
(
0
)
}
func
Dup2
(
oldfd
int
,
newfd
int
)
(
err
error
)
{
return
Dup3
(
oldfd
,
newfd
,
0
)
}
func
Pause
()
error
{
_
,
err
:=
ppoll
(
nil
,
0
,
nil
,
nil
)
return
err
}
func
Poll
(
fds
[]
PollFd
,
timeout
int
)
(
n
int
,
err
error
)
{
var
ts
*
Timespec
if
timeout
>=
0
{
ts
=
new
(
Timespec
)
*
ts
=
NsecToTimespec
(
int64
(
timeout
)
*
1e6
)
}
if
len
(
fds
)
==
0
{
return
ppoll
(
nil
,
0
,
ts
,
nil
)
}
return
ppoll
(
&
fds
[
0
],
len
(
fds
),
ts
,
nil
)
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Oct 9, 10:33 PM (1 d, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3440861
Attached To
rWCLI writeas-cli
Event Timeline
Log In to Comment