makesyscalls.sh: allow pointer return types.

The previous code required that the return type be a single word.  This
allows it to be a pointer without using a typedef.

Update the return types of break, mmap, and shmat to be void * as
declared.  This only effects systrace output in-tree, but can aid in
generating system call wrappers from syscalls.master.

Reviewed by:	kib
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D17873
This commit is contained in:
Brooks Davis 2018-11-07 16:55:04 +00:00
parent de66da7374
commit e56ec0e519
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=340221
3 changed files with 22 additions and 13 deletions

View File

@ -88,7 +88,7 @@
int mode, int dev); }
15 AUE_CHMOD NOPROTO { int chmod(const char *path, mode_t mode); }
16 AUE_CHOWN NOPROTO { int chown(const char *path, int uid, int gid); }
17 AUE_NULL NOPROTO { caddr_t break(char *nsize); }
17 AUE_NULL NOPROTO { void *break(char *nsize); }
18 AUE_GETFSSTAT COMPAT4 { int freebsd32_getfsstat( \
struct statfs32 *buf, long bufsize, \
int mode); }
@ -175,7 +175,7 @@
68 AUE_NULL OBSOL vwrite
69 AUE_SBRK NOPROTO { int sbrk(int incr); }
70 AUE_SSTK NOPROTO { int sstk(int incr); }
71 AUE_MMAP COMPAT|NOPROTO { int mmap(void *addr, int len, \
71 AUE_MMAP COMPAT|NOPROTO { void *mmap(void *addr, int len, \
int prot, int flags, int fd, int pos); }
72 AUE_O_VADVISE COMPAT11|NOPROTO { int vadvise(int anom); }
73 AUE_MUNMAP NOPROTO { int munmap(void *addr, size_t len); }
@ -373,7 +373,7 @@
__setrlimit_args int
196 AUE_GETDIRENTRIES COMPAT11 { int freebsd32_getdirentries(int fd, \
char *buf, u_int count, int32_t *basep); }
197 AUE_MMAP COMPAT6 { caddr_t freebsd32_mmap(void *addr, \
197 AUE_MMAP COMPAT6 { void *freebsd32_mmap(void *addr, \
size_t len, int prot, int flags, int fd, \
int pad, uint32_t pos1, uint32_t pos2); }
198 AUE_NULL NOPROTO { int nosys(void); } __syscall \
@ -432,7 +432,7 @@
size_t msgsz, int msgflg); }
227 AUE_MSGRCV NOSTD { int freebsd32_msgrcv(int msqid, void *msgp, \
size_t msgsz, long msgtyp, int msgflg); }
228 AUE_SHMAT NOSTD|NOPROTO { int shmat(int shmid, void *shmaddr, \
228 AUE_SHMAT NOSTD|NOPROTO { void *shmat(int shmid, void *shmaddr, \
int shmflg); }
229 AUE_SHMCTL COMPAT7|NOSTD { int freebsd32_shmctl( \
int shmid, int cmd, \
@ -876,7 +876,7 @@
const void *buf, size_t nbyte, \
int pad, \
uint32_t offset1, uint32_t offset2); }
477 AUE_MMAP STD { caddr_t freebsd32_mmap(void *addr, \
477 AUE_MMAP STD { void *freebsd32_mmap(void *addr, \
size_t len, int prot, int flags, int fd, \
int pad, \
uint32_t pos1, uint32_t pos2); }
@ -897,7 +897,7 @@
476 AUE_PWRITE STD { ssize_t freebsd32_pwrite(int fd, \
const void *buf, size_t nbyte, \
uint32_t offset1, uint32_t offset2); }
477 AUE_MMAP STD { caddr_t freebsd32_mmap(void *addr, \
477 AUE_MMAP STD { void *freebsd32_mmap(void *addr, \
size_t len, int prot, int flags, int fd, \
uint32_t pos1, uint32_t pos2); }
478 AUE_LSEEK STD { off_t freebsd32_lseek(int fd, \

View File

@ -325,6 +325,7 @@ sed -e '
}
function parseline() {
f=4 # toss number, type, audit event
ret_inc = 0
argc= 0;
argssize = "0"
thr_flag = "SY_THR_STATIC"
@ -340,12 +341,15 @@ sed -e '
funcalias=""
argalias=""
rettype="int"
if ($(f+2) == "*") {
ret_inc = 1
}
end=NF
}
if (flag("NODEF")) {
auditev="AUE_NULL"
funcname=$4
argssize = "AS(" $6 ")"
funcname=$(4 + ret_inc)
argssize = "AS(" $(6 + ret_inc) ")"
return
}
if ($f != "{")
@ -363,6 +367,11 @@ sed -e '
syscallret=$f
f++
while (ret_inc > 0) {
syscallret=syscallret " " $f
f++
ret_inc--
}
funcname=$f

View File

@ -180,7 +180,7 @@
);
}
17 AUE_NULL STD {
caddr_t break(
void *break(
_In_ char *nsize
);
}
@ -480,7 +480,7 @@
);
}
71 AUE_MMAP COMPAT {
int mmap(
void *mmap(
_In_ void *addr,
int len,
int prot,
@ -1168,7 +1168,7 @@
);
}
197 AUE_MMAP COMPAT6 {
caddr_t mmap(
void *mmap(
_In_ void *addr,
size_t len,
int prot,
@ -1317,7 +1317,7 @@
);
}
228 AUE_SHMAT NOSTD {
int shmat(
void *shmat(
int shmid,
_In_ const void *shmaddr,
int shmflg
@ -2543,7 +2543,7 @@
);
}
477 AUE_MMAP STD {
caddr_t mmap(
void *mmap(
_In_ void *addr,
size_t len,
int prot,