aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2016-10-29 17:00:35 -0600
committerDmitry Vyukov <dvyukov@google.com>2016-11-11 14:33:15 -0800
commit5ed6283b64f91c8aa036122b18974aabed4c5249 (patch)
treebabbd9bd6a3bde548e650d82946e5ce6e6541e57 /sys
parentf085c198ba2dd95ce46a66ec8f8e6b472c3cca14 (diff)
sys: don't imply pointer indirection for string arguments
In preparation for extending string functionality and to make it less magical.
Diffstat (limited to 'sys')
-rw-r--r--sys/README.md2
-rw-r--r--sys/bpf.txt2
-rw-r--r--sys/key.txt8
-rw-r--r--sys/perf.txt2
-rw-r--r--sys/sndcontrol.txt2
-rw-r--r--sys/socket.txt2
-rw-r--r--sys/sys.txt34
7 files changed, 26 insertions, 26 deletions
diff --git a/sys/README.md b/sys/README.md
index 28b1b712a..89638aa12 100644
--- a/sys/README.md
+++ b/sys/README.md
@@ -44,7 +44,7 @@ rest of the type-options are type-specific:
type of the object; direction (in/out/inout)
"buffer": a pointer to a memory buffer (like read/write buffer argument), type-options:
direction (in/out/inout)
- "string": a pointer to a memory buffer, similar to buffer[in]
+ "string": a zero-terminated memory buffer (no pointer indirection implied)
"strconst": a pointer to a constant string, type-options:
the underlying string (for example "/dev/dsp")
"filename": a file/link/dir name
diff --git a/sys/bpf.txt b/sys/bpf.txt
index 68b4c0ab9..e7338cc53 100644
--- a/sys/bpf.txt
+++ b/sys/bpf.txt
@@ -52,7 +52,7 @@ bpf_prog {
type flags[bpf_prog_type, int32]
ninsn len[insns, int32]
insns ptr[in, array[bpf_insn]]
- license string
+ license ptr[in, string]
loglev int32
logsize len[log, int32]
log buffer[out]
diff --git a/sys/key.txt b/sys/key.txt
index 6c431682c..c0b18f5e8 100644
--- a/sys/key.txt
+++ b/sys/key.txt
@@ -6,17 +6,17 @@ include <uapi/linux/keyctl.h>
resource key[int32]: KEY_SPEC_THREAD_KEYRING, KEY_SPEC_PROCESS_KEYRING, KEY_SPEC_SESSION_KEYRING, KEY_SPEC_USER_KEYRING, KEY_SPEC_USER_SESSION_KEYRING, KEY_SPEC_GROUP_KEYRING, KEY_SPEC_REQKEY_AUTH_KEY, KEY_SPEC_REQUESTOR_KEYRING
-add_key(type string, desc string, payload buffer[in, opt], paylen len[payload], keyring flags[keyring_type]) key
-request_key(type string, desc string, callout string, keyring flags[keyring_type]) key
+add_key(type ptr[in, string], desc ptr[in, string], payload buffer[in, opt], paylen len[payload], keyring flags[keyring_type]) key
+request_key(type ptr[in, string], desc ptr[in, string], callout ptr[in, string], keyring flags[keyring_type]) key
keyctl$get_keyring_id(code const[KEYCTL_GET_KEYRING_ID], key key, create intptr)
-keyctl$join(code const[KEYCTL_JOIN_SESSION_KEYRING], session string)
+keyctl$join(code const[KEYCTL_JOIN_SESSION_KEYRING], session ptr[in, string])
keyctl$update(code const[KEYCTL_UPDATE], key key, payload buffer[in, opt], paylen len[payload])
keyctl$revoke(code const[KEYCTL_REVOKE], key key)
keyctl$describe(code const[KEYCTL_DESCRIBE], key key, desc buffer[out], len len[desc])
keyctl$clear(code const[KEYCTL_CLEAR], key key)
keyctl$link(code const[KEYCTL_LINK], key1 key, key2 key)
keyctl$unlink(code const[KEYCTL_UNLINK], key1 key, key2 key)
-keyctl$search(code const[KEYCTL_SEARCH], key key, type string, desc string, ring key)
+keyctl$search(code const[KEYCTL_SEARCH], key key, type ptr[in, string], desc ptr[in, string], ring key)
keyctl$read(code const[KEYCTL_READ], key key, payload buffer[out], len len[payload])
keyctl$chown(code const[KEYCTL_CHOWN], key key, uid uid, gid gid)
# perm is a mask of KEY_POS_VIEW, etc consants, but they cover almost whole int32.
diff --git a/sys/perf.txt b/sys/perf.txt
index a860d75c8..e35ad22b9 100644
--- a/sys/perf.txt
+++ b/sys/perf.txt
@@ -15,7 +15,7 @@ ioctl$PERF_EVENT_IOC_REFRESH(fd fd_perf, cmd const[PERF_EVENT_IOC_REFRESH], refr
ioctl$PERF_EVENT_IOC_PERIOD(fd fd_perf, cmd const[PERF_EVENT_IOC_PERIOD], period ptr[in, int64])
ioctl$PERF_EVENT_IOC_ID(fd fd_perf, cmd const[PERF_EVENT_IOC_ID], id ptr[out, int64])
ioctl$PERF_EVENT_IOC_SET_OUTPUT(fd fd_perf, cmd const[PERF_EVENT_IOC_SET_OUTPUT], other fd_perf)
-ioctl$PERF_EVENT_IOC_SET_FILTER(fd fd_perf, cmd const[PERF_EVENT_IOC_SET_FILTER], filter string)
+ioctl$PERF_EVENT_IOC_SET_FILTER(fd fd_perf, cmd const[PERF_EVENT_IOC_SET_FILTER], filter ptr[in, string])
ioctl$PERF_EVENT_IOC_SET_BPF(fd fd_perf, cmd const[PERF_EVENT_IOC_SET_BPF], prog fd_bpf_prog)
perf_flags = PERF_FLAG_FD_NO_GROUP, PERF_FLAG_FD_OUTPUT, PERF_FLAG_PID_CGROUP, PERF_FLAG_FD_CLOEXEC
diff --git a/sys/sndcontrol.txt b/sys/sndcontrol.txt
index 20d5cc320..3e3b8a359 100644
--- a/sys/sndcontrol.txt
+++ b/sys/sndcontrol.txt
@@ -61,7 +61,7 @@ snd_ctl_elem_info {
items int32
item int32
name array[int8, 64]
- nameptr string
+ nameptr ptr[in, string]
namelen len[nameptr, int32]
pad1 array[const[0, int8], 44]
d array[int16, 4]
diff --git a/sys/socket.txt b/sys/socket.txt
index b2db95849..ca4dfeaf6 100644
--- a/sys/socket.txt
+++ b/sys/socket.txt
@@ -46,7 +46,7 @@ ioctl$SIOCINQ(fd sock, cmd const[SIOCINQ], arg ptr[out, int32])
setsockopt$sock_void(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_void], optval const[0], optlen const[0])
getsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
setsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[in, int32], optlen len[optval])
-setsockopt$sock_str(fd sock, level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval string, optlen len[optval])
+setsockopt$sock_str(fd sock, level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval ptr[in, string], optlen len[optval])
getsockopt$sock_linger(fd sock, level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[out, linger], optlen ptr[inout, len[optval, int32]])
setsockopt$sock_linger(fd sock, level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[in, linger], optlen len[optval])
getsockopt$sock_cred(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen ptr[inout, len[optval, int32]])
diff --git a/sys/sys.txt b/sys/sys.txt
index 8ac03e8dc..13d2d2830 100644
--- a/sys/sys.txt
+++ b/sys/sys.txt
@@ -156,7 +156,7 @@ mlock2(addr vma, size len[addr], flags flags[mlock_flags])
munlock(addr vma, size len[addr])
mlockall(flags flags[mlockall_flags])
munlockall()
-memfd_create(name string, flags flags[memfd_flags]) fd
+memfd_create(name ptr[in, string], flags flags[memfd_flags]) fd
unshare(flags flags[clone_flags])
kcmp(pid1 pid, pid2 pid, type flags[kcmp_flags], fd1 fd, fd2 fd)
@@ -220,7 +220,7 @@ prctl$intptr(option flags[prctl_code_intptr], arg intptr)
prctl$getreaper(option flags[prctl_code_getreaper], arg ptr[out, intptr])
prctl$setendian(option const[PR_SET_ENDIAN], arg flags[prctl_endian])
prctl$setfpexc(option const[PR_SET_FPEXC], arg flags[prctl_fpexc])
-prctl$setname(option const[PR_SET_NAME], name string)
+prctl$setname(option const[PR_SET_NAME], name ptr[in, string])
prctl$getname(option const[PR_GET_NAME], name buffer[out])
prctl$setptracer(option const[PR_SET_PTRACER], pid pid)
prctl$seccomp(option const[PR_SET_SECCOMP], mode flags[prctl_seccomp_mode], prog ptr[in, sock_fprog])
@@ -230,12 +230,12 @@ arch_prctl(code flags[arch_prctl_code], addr buffer[in])
seccomp(op flags[seccomp_op], flags flags[seccomp_flags], prog ptr[in, sock_fprog])
resource fd_mq[fd]
-mq_open(name string, flags flags[mq_open_flags], mode flags[open_mode], attr ptr[in, mq_attr]) fd_mq
+mq_open(name ptr[in, string], flags flags[mq_open_flags], mode flags[open_mode], attr ptr[in, mq_attr]) fd_mq
mq_timedsend(mqd fd_mq, msg buffer[in], msglen len[msg], prio intptr, timeout ptr[in, timespec, opt])
mq_timedreceive(mqd fd_mq, msg buffer[out], msglen len[msg], prio intptr, timeout ptr[in, timespec, opt])
mq_notify(mqd fd_mq, notif ptr[in, sigevent])
mq_getsetattr(mqd fd_mq, attr ptr[in, mq_attr], oldattr ptr[out, mq_attr, opt])
-mq_unlink(name string)
+mq_unlink(name ptr[in, string])
resource ipc[int32]: 0, 0xffffffffffffffff
resource ipc_msq[ipc]
@@ -350,16 +350,16 @@ mount$fs(src filesystem, dst filename, type filesystem, flags flags[mount_flags]
umount2(path filename, flags flags[umount_flags])
pivot_root(new_root filename, put_old filename)
-sysfs$1(option flags[sysfs_opt1], fsname string)
+sysfs$1(option flags[sysfs_opt1], fsname ptr[in, string])
sysfs$2(option flags[sysfs_opt2], fsindex intptr, fsname buffer[out])
sysfs$3(option flags[sysfs_opt3])
statfs(path filename, buf buffer[out])
fstatfs(fd fd, buf buffer[out])
uselib(lib filename)
-init_module(mod string, len len[mod], args string)
-finit_module(fd fd, args string, flags flags[finit_module_flags])
-delete_module(name string, flags flags[delete_module_flags])
+init_module(mod ptr[in, string], len len[mod], args ptr[in, string])
+finit_module(fd fd, args ptr[in, string], flags flags[finit_module_flags])
+delete_module(name ptr[in, string], flags flags[delete_module_flags])
kexec_load(entry intptr, nr_segments len[segments], segments ptr[in, array[kexec_segment]], flags flags[kexec_load_flags])
get_kernel_syms(table buffer[out])
syslog(cmd flags[syslog_cmd], buf buffer[out, opt], len len[buf])
@@ -381,18 +381,18 @@ ioprio_set$pid(which flags[ioprio_which_pid], who pid, prio intptr)
ioprio_set$uid(which flags[ioprio_which_uid], who uid, prio intptr)
setns(fd fd, type flags[ns_type])
-setxattr(path filename, name string, val string, size len[val], flags flags[setxattr_flags])
-lsetxattr(path filename, name string, val string, size len[val], flags flags[setxattr_flags])
-fsetxattr(fd fd, name string, val string, size len[val], flags flags[setxattr_flags])
-getxattr(path filename, name string, val buffer[out], size len[val])
-lgetxattr(path filename, name string, val buffer[out], size len[val])
-fgetxattr(fd fd, name string, val buffer[out], size len[val])
+setxattr(path filename, name ptr[in, string], val ptr[in, string], size len[val], flags flags[setxattr_flags])
+lsetxattr(path filename, name ptr[in, string], val ptr[in, string], size len[val], flags flags[setxattr_flags])
+fsetxattr(fd fd, name ptr[in, string], val ptr[in, string], size len[val], flags flags[setxattr_flags])
+getxattr(path filename, name ptr[in, string], val buffer[out], size len[val])
+lgetxattr(path filename, name ptr[in, string], val buffer[out], size len[val])
+fgetxattr(fd fd, name ptr[in, string], val buffer[out], size len[val])
listxattr(path filename, list buffer[out], size len[list])
llistxattr(path filename, list buffer[out], size len[list])
flistxattr(fd fd, list buffer[out], size len[list])
-removexattr(path filename, name string)
-lremovexattr(path filename, name string)
-fremovexattr(fd fd, name string)
+removexattr(path filename, name ptr[in, string])
+lremovexattr(path filename, name ptr[in, string])
+fremovexattr(fd fd, name ptr[in, string])
resource timerid[int32]
timer_create(id flags[clock_id], ev ptr[in, sigevent], timerid ptr[out, timerid])