Source file
src/syscall/syscall_linux_riscv64.go
Documentation: syscall
1
2
3
4
5 package syscall
6
7 import "unsafe"
8
9
10
11
12
13 const archHonorsR2 = true
14
15 const _SYS_setgroups = SYS_SETGROUPS
16
17 func EpollCreate(size int) (fd int, err error) {
18 if size <= 0 {
19 return -1, EINVAL
20 }
21 return EpollCreate1(0)
22 }
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
49 return renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
50 }
51
52 func Stat(path string, stat *Stat_t) (err error) {
53 return Fstatat(_AT_FDCWD, path, stat, 0)
54 }
55
56 func Lchown(path string, uid int, gid int) (err error) {
57 return Fchownat(_AT_FDCWD, path, uid, gid, _AT_SYMLINK_NOFOLLOW)
58 }
59
60 func Lstat(path string, stat *Stat_t) (err error) {
61 return Fstatat(_AT_FDCWD, path, stat, _AT_SYMLINK_NOFOLLOW)
62 }
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 type sigset_t struct {
85 X__val [16]uint64
86 }
87
88
89
90 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
91 var ts *Timespec
92 if timeout != nil {
93 ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
94 }
95 return pselect(nfd, r, w, e, ts, nil)
96 }
97
98
99
100 func setTimespec(sec, nsec int64) Timespec {
101 return Timespec{Sec: sec, Nsec: nsec}
102 }
103
104 func setTimeval(sec, usec int64) Timeval {
105 return Timeval{Sec: sec, Usec: usec}
106 }
107
108 func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
109 if tv == nil {
110 return utimensat(dirfd, path, nil, 0)
111 }
112
113 ts := []Timespec{
114 NsecToTimespec(TimevalToNsec(tv[0])),
115 NsecToTimespec(TimevalToNsec(tv[1])),
116 }
117 return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
118 }
119
120 func Time(t *Time_t) (Time_t, error) {
121 var tv Timeval
122 err := Gettimeofday(&tv)
123 if err != nil {
124 return 0, err
125 }
126 if t != nil {
127 *t = Time_t(tv.Sec)
128 }
129 return Time_t(tv.Sec), nil
130 }
131
132 func Utime(path string, buf *Utimbuf) error {
133 tv := []Timeval{
134 {Sec: buf.Actime},
135 {Sec: buf.Modtime},
136 }
137 return Utimes(path, tv)
138 }
139
140 func utimes(path string, tv *[2]Timeval) (err error) {
141 if tv == nil {
142 return utimensat(_AT_FDCWD, path, nil, 0)
143 }
144
145 ts := []Timespec{
146 NsecToTimespec(TimevalToNsec(tv[0])),
147 NsecToTimespec(TimevalToNsec(tv[1])),
148 }
149 return utimensat(_AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
150 }
151
152 func Pipe(p []int) (err error) {
153 if len(p) != 2 {
154 return EINVAL
155 }
156 var pp [2]_C_int
157 err = pipe2(&pp, 0)
158 p[0] = int(pp[0])
159 p[1] = int(pp[1])
160 return
161 }
162
163
164
165 func Pipe2(p []int, flags int) (err error) {
166 if len(p) != 2 {
167 return EINVAL
168 }
169 var pp [2]_C_int
170 err = pipe2(&pp, flags)
171 p[0] = int(pp[0])
172 p[1] = int(pp[1])
173 return
174 }
175
176 func (r *PtraceRegs) PC() uint64 { return r.Pc }
177
178 func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
179
180 func (iov *Iovec) SetLen(length int) {
181 iov.Len = uint64(length)
182 }
183
184 func (msghdr *Msghdr) SetControllen(length int) {
185 msghdr.Controllen = uint64(length)
186 }
187
188 func (cmsg *Cmsghdr) SetLen(length int) {
189 cmsg.Len = uint64(length)
190 }
191
192 func InotifyInit() (fd int, err error) {
193 return InotifyInit1(0)
194 }
195
196
197
198 func Pause() error {
199 _, err := ppoll(nil, 0, nil, nil)
200 return err
201 }
202
203 func rawVforkSyscall(trap, a1 uintptr) (r1 uintptr, err Errno)
204
View as plain text