Date: Sun, 1 Jul 2007 08:10:05 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 122619 for review Message-ID: <200707010810.l618A5Sr076199@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=122619 Change 122619 by peter@peter_overcee on 2007/07/01 08:09:42 Try things a little differently. Expose compat syscall numbers to syscall.h for libc pseudo wrappers. Affected files ... .. //depot/projects/hammer/sys/kern/init_sysent.c#60 edit .. //depot/projects/hammer/sys/kern/makesyscalls.sh#9 edit .. //depot/projects/hammer/sys/kern/syscalls.c#58 edit .. //depot/projects/hammer/sys/kern/syscalls.master#59 edit .. //depot/projects/hammer/sys/kern/systrace_args.c#4 edit .. //depot/projects/hammer/sys/sys/syscall.h#57 edit .. //depot/projects/hammer/sys/sys/syscall.mk#57 edit .. //depot/projects/hammer/sys/sys/sysproto.h#58 edit Differences ... ==== //depot/projects/hammer/sys/kern/init_sysent.c#60 (text+ko) ==== @@ -27,6 +27,12 @@ #define compat4(n, name) 0, (sy_call_t *)nosys #endif +#ifdef COMPAT_FREEBSD6 +#define compat6(n, name) n, (sy_call_t *)__CONCAT(freebsd6_,name) +#else +#define compat6(n, name) 0, (sy_call_t *)nosys +#endif + /* The casts are bogus but will do for now. */ struct sysent sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 0 = syscall */ @@ -202,8 +208,8 @@ { AS(msgsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 }, /* 170 = msgsys */ { AS(shmsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0 }, /* 171 = shmsys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 172 = nosys */ - { AS(pread_args), (sy_call_t *)pread, AUE_PREAD, NULL, 0, 0 }, /* 173 = pread */ - { AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE, NULL, 0, 0 }, /* 174 = pwrite */ + { compat6(AS(freebsd6_pread_args),pread), AUE_PREAD, NULL, 0, 0 }, /* 173 = old pread */ + { compat6(AS(freebsd6_pwrite_args),pwrite), AUE_PWRITE, NULL, 0, 0 }, /* 174 = old pwrite */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 175 = nosys */ { AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME, NULL, 0, 0 }, /* 176 = ntp_adjtime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 177 = sfork */ @@ -226,11 +232,11 @@ { AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT, NULL, 0, 0 }, /* 194 = getrlimit */ { AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT, NULL, 0, 0 }, /* 195 = setrlimit */ { AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0 }, /* 196 = getdirentries */ - { AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP, NULL, 0, 0 }, /* 197 = mmap */ + { compat6(AS(freebsd6_mmap_args),mmap), AUE_MMAP, NULL, 0, 0 }, /* 197 = old mmap */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 198 = __syscall */ - { AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK, NULL, 0, 0 }, /* 199 = lseek */ - { AS(truncate_args), (sy_call_t *)truncate, AUE_TRUNCATE, NULL, 0, 0 }, /* 200 = truncate */ - { AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE, NULL, 0, 0 }, /* 201 = ftruncate */ + { compat6(AS(freebsd6_lseek_args),lseek), AUE_LSEEK, NULL, 0, 0 }, /* 199 = old lseek */ + { compat6(AS(freebsd6_truncate_args),truncate), AUE_TRUNCATE, NULL, 0, 0 }, /* 200 = old truncate */ + { compat6(AS(freebsd6_ftruncate_args),ftruncate), AUE_FTRUNCATE, NULL, 0, 0 }, /* 201 = old ftruncate */ { AS(sysctl_args), (sy_call_t *)__sysctl, AUE_SYSCTL, NULL, 0, 0 }, /* 202 = __sysctl */ { AS(mlock_args), (sy_call_t *)mlock, AUE_MLOCK, NULL, 0, 0 }, /* 203 = mlock */ { AS(munlock_args), (sy_call_t *)munlock, AUE_MUNLOCK, NULL, 0, 0 }, /* 204 = munlock */ @@ -504,10 +510,10 @@ { AS(sctp_generic_sendmsg_args), (sy_call_t *)sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0 }, /* 472 = sctp_generic_sendmsg */ { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0 }, /* 473 = sctp_generic_sendmsg_iov */ { AS(sctp_generic_recvmsg_args), (sy_call_t *)sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0 }, /* 474 = sctp_generic_recvmsg */ - { AS(_new_pread_args), (sy_call_t *)_new_pread, AUE_PREAD, NULL, 0, 0 }, /* 475 = _new_pread */ - { AS(_new_pwrite_args), (sy_call_t *)_new_pwrite, AUE_PWRITE, NULL, 0, 0 }, /* 476 = _new_pwrite */ - { AS(_new_mmap_args), (sy_call_t *)_new_mmap, AUE_MMAP, NULL, 0, 0 }, /* 477 = _new_mmap */ - { AS(_new_lseek_args), (sy_call_t *)_new_lseek, AUE_LSEEK, NULL, 0, 0 }, /* 478 = _new_lseek */ - { AS(_new_truncate_args), (sy_call_t *)_new_truncate, AUE_TRUNCATE, NULL, 0, 0 }, /* 479 = _new_truncate */ - { AS(_new_ftruncate_args), (sy_call_t *)_new_ftruncate, AUE_FTRUNCATE, NULL, 0, 0 }, /* 480 = _new_ftruncate */ + { AS(pread_args), (sy_call_t *)pread, AUE_PREAD, NULL, 0, 0 }, /* 475 = pread */ + { AS(pwrite_args), (sy_call_t *)pwrite, AUE_PWRITE, NULL, 0, 0 }, /* 476 = pwrite */ + { AS(mmap_args), (sy_call_t *)mmap, AUE_MMAP, NULL, 0, 0 }, /* 477 = mmap */ + { AS(lseek_args), (sy_call_t *)lseek, AUE_LSEEK, NULL, 0, 0 }, /* 478 = lseek */ + { AS(truncate_args), (sy_call_t *)truncate, AUE_TRUNCATE, NULL, 0, 0 }, /* 479 = truncate */ + { AS(ftruncate_args), (sy_call_t *)ftruncate, AUE_FTRUNCATE, NULL, 0, 0 }, /* 480 = ftruncate */ }; ==== //depot/projects/hammer/sys/kern/makesyscalls.sh#9 (text+ko) ==== @@ -430,10 +430,16 @@ align_sysent_comment(8 + 9 + \ length(argssize) + 1 + length(funcname) + length(auditev) + 4) printf("/* %d = old %s */\n", syscall, funcalias) > sysent - printf("\t\"old.%s\",\t\t/* %d = old %s */\n", - funcalias, syscall, funcalias) > sysnames - printf("\t\t\t\t/* %d is old %s */\n", - syscall, funcalias) > syshdr + printf("\t\"%s.%s\",\t\t/* %d = old %s */\n", + wrap, funcalias, syscall, funcalias) > sysnames + if ($3 == "COMPAT" || $3 == "CPT_NOA") { + printf("\t\t\t\t/* %d is old %s */\n", + syscall, funcalias) > syshdr + } else { + printf("#define\t%s%s%s\t%d\n", syscallprefix, + prefix, funcalias, syscall) > syshdr + printf(" \\\n\t%s%s.o", prefix, funcalias) > sysmk + } syscall++ next } ==== //depot/projects/hammer/sys/kern/syscalls.c#58 (text+ko) ==== @@ -15,7 +15,7 @@ "open", /* 5 = open */ "close", /* 6 = close */ "wait4", /* 7 = wait4 */ - "old.creat", /* 8 = old creat */ + "compat.creat", /* 8 = old creat */ "link", /* 9 = link */ "unlink", /* 10 = unlink */ "obs_execv", /* 11 = obsolete execv */ @@ -25,8 +25,8 @@ "chmod", /* 15 = chmod */ "chown", /* 16 = chown */ "break", /* 17 = break */ - "old.getfsstat", /* 18 = old getfsstat */ - "old.lseek", /* 19 = old lseek */ + "compat4.getfsstat", /* 18 = old getfsstat */ + "compat.lseek", /* 19 = old lseek */ "getpid", /* 20 = getpid */ "mount", /* 21 = mount */ "unmount", /* 22 = unmount */ @@ -45,21 +45,21 @@ "fchflags", /* 35 = fchflags */ "sync", /* 36 = sync */ "kill", /* 37 = kill */ - "old.stat", /* 38 = old stat */ + "compat.stat", /* 38 = old stat */ "getppid", /* 39 = getppid */ - "old.lstat", /* 40 = old lstat */ + "compat.lstat", /* 40 = old lstat */ "dup", /* 41 = dup */ "pipe", /* 42 = pipe */ "getegid", /* 43 = getegid */ "profil", /* 44 = profil */ "ktrace", /* 45 = ktrace */ - "old.sigaction", /* 46 = old sigaction */ + "compat.sigaction", /* 46 = old sigaction */ "getgid", /* 47 = getgid */ - "old.sigprocmask", /* 48 = old sigprocmask */ + "compat.sigprocmask", /* 48 = old sigprocmask */ "getlogin", /* 49 = getlogin */ "setlogin", /* 50 = setlogin */ "acct", /* 51 = acct */ - "old.sigpending", /* 52 = old sigpending */ + "compat.sigpending", /* 52 = old sigpending */ "sigaltstack", /* 53 = sigaltstack */ "ioctl", /* 54 = ioctl */ "reboot", /* 55 = reboot */ @@ -69,16 +69,16 @@ "execve", /* 59 = execve */ "umask", /* 60 = umask */ "chroot", /* 61 = chroot */ - "old.fstat", /* 62 = old fstat */ - "old.getkerninfo", /* 63 = old getkerninfo */ - "old.getpagesize", /* 64 = old getpagesize */ + "compat.fstat", /* 62 = old fstat */ + "compat.getkerninfo", /* 63 = old getkerninfo */ + "compat.getpagesize", /* 64 = old getpagesize */ "msync", /* 65 = msync */ "vfork", /* 66 = vfork */ "obs_vread", /* 67 = obsolete vread */ "obs_vwrite", /* 68 = obsolete vwrite */ "sbrk", /* 69 = sbrk */ "sstk", /* 70 = sstk */ - "old.mmap", /* 71 = old mmap */ + "compat.mmap", /* 71 = old mmap */ "vadvise", /* 72 = vadvise */ "munmap", /* 73 = munmap */ "mprotect", /* 74 = mprotect */ @@ -91,11 +91,11 @@ "getpgrp", /* 81 = getpgrp */ "setpgid", /* 82 = setpgid */ "setitimer", /* 83 = setitimer */ - "old.wait", /* 84 = old wait */ + "compat.wait", /* 84 = old wait */ "swapon", /* 85 = swapon */ "getitimer", /* 86 = getitimer */ - "old.gethostname", /* 87 = old gethostname */ - "old.sethostname", /* 88 = old sethostname */ + "compat.gethostname", /* 87 = old gethostname */ + "compat.sethostname", /* 88 = old sethostname */ "getdtablesize", /* 89 = getdtablesize */ "dup2", /* 90 = dup2 */ "#91", /* 91 = getdopt */ @@ -106,22 +106,22 @@ "setpriority", /* 96 = setpriority */ "socket", /* 97 = socket */ "connect", /* 98 = connect */ - "old.accept", /* 99 = old accept */ + "compat.accept", /* 99 = old accept */ "getpriority", /* 100 = getpriority */ - "old.send", /* 101 = old send */ - "old.recv", /* 102 = old recv */ - "old.sigreturn", /* 103 = old sigreturn */ + "compat.send", /* 101 = old send */ + "compat.recv", /* 102 = old recv */ + "compat.sigreturn", /* 103 = old sigreturn */ "bind", /* 104 = bind */ "setsockopt", /* 105 = setsockopt */ "listen", /* 106 = listen */ "obs_vtimes", /* 107 = obsolete vtimes */ - "old.sigvec", /* 108 = old sigvec */ - "old.sigblock", /* 109 = old sigblock */ - "old.sigsetmask", /* 110 = old sigsetmask */ - "old.sigsuspend", /* 111 = old sigsuspend */ - "old.sigstack", /* 112 = old sigstack */ - "old.recvmsg", /* 113 = old recvmsg */ - "old.sendmsg", /* 114 = old sendmsg */ + "compat.sigvec", /* 108 = old sigvec */ + "compat.sigblock", /* 109 = old sigblock */ + "compat.sigsetmask", /* 110 = old sigsetmask */ + "compat.sigsuspend", /* 111 = old sigsuspend */ + "compat.sigstack", /* 112 = old sigstack */ + "compat.recvmsg", /* 113 = old recvmsg */ + "compat.sendmsg", /* 114 = old sendmsg */ "obs_vtrace", /* 115 = obsolete vtrace */ "gettimeofday", /* 116 = gettimeofday */ "getrusage", /* 117 = getrusage */ @@ -132,12 +132,12 @@ "settimeofday", /* 122 = settimeofday */ "fchown", /* 123 = fchown */ "fchmod", /* 124 = fchmod */ - "old.recvfrom", /* 125 = old recvfrom */ + "compat.recvfrom", /* 125 = old recvfrom */ "setreuid", /* 126 = setreuid */ "setregid", /* 127 = setregid */ "rename", /* 128 = rename */ - "old.truncate", /* 129 = old truncate */ - "old.ftruncate", /* 130 = old ftruncate */ + "compat.truncate", /* 129 = old truncate */ + "compat.ftruncate", /* 130 = old ftruncate */ "flock", /* 131 = flock */ "mkfifo", /* 132 = mkfifo */ "sendto", /* 133 = sendto */ @@ -148,24 +148,24 @@ "utimes", /* 138 = utimes */ "obs_4.2", /* 139 = obsolete 4.2 sigreturn */ "adjtime", /* 140 = adjtime */ - "old.getpeername", /* 141 = old getpeername */ - "old.gethostid", /* 142 = old gethostid */ - "old.sethostid", /* 143 = old sethostid */ - "old.getrlimit", /* 144 = old getrlimit */ - "old.setrlimit", /* 145 = old setrlimit */ - "old.killpg", /* 146 = old killpg */ + "compat.getpeername", /* 141 = old getpeername */ + "compat.gethostid", /* 142 = old gethostid */ + "compat.sethostid", /* 143 = old sethostid */ + "compat.getrlimit", /* 144 = old getrlimit */ + "compat.setrlimit", /* 145 = old setrlimit */ + "compat.killpg", /* 146 = old killpg */ "setsid", /* 147 = setsid */ "quotactl", /* 148 = quotactl */ - "old.quota", /* 149 = old quota */ - "old.getsockname", /* 150 = old getsockname */ + "compat.quota", /* 149 = old quota */ + "compat.getsockname", /* 150 = old getsockname */ "#151", /* 151 = sem_lock */ "#152", /* 152 = sem_wakeup */ "#153", /* 153 = asyncdaemon */ "#154", /* 154 = nosys */ "nfssvc", /* 155 = nfssvc */ - "old.getdirentries", /* 156 = old getdirentries */ - "old.statfs", /* 157 = old statfs */ - "old.fstatfs", /* 158 = old fstatfs */ + "compat.getdirentries", /* 156 = old getdirentries */ + "compat4.statfs", /* 157 = old statfs */ + "compat4.fstatfs", /* 158 = old fstatfs */ "#159", /* 159 = nosys */ "lgetfh", /* 160 = lgetfh */ "getfh", /* 161 = getfh */ @@ -180,8 +180,8 @@ "msgsys", /* 170 = msgsys */ "shmsys", /* 171 = shmsys */ "#172", /* 172 = nosys */ - "pread", /* 173 = pread */ - "pwrite", /* 174 = pwrite */ + "compat6.pread", /* 173 = old pread */ + "compat6.pwrite", /* 174 = old pwrite */ "#175", /* 175 = nosys */ "ntp_adjtime", /* 176 = ntp_adjtime */ "#177", /* 177 = sfork */ @@ -204,11 +204,11 @@ "getrlimit", /* 194 = getrlimit */ "setrlimit", /* 195 = setrlimit */ "getdirentries", /* 196 = getdirentries */ - "mmap", /* 197 = mmap */ + "compat6.mmap", /* 197 = old mmap */ "__syscall", /* 198 = __syscall */ - "lseek", /* 199 = lseek */ - "truncate", /* 200 = truncate */ - "ftruncate", /* 201 = ftruncate */ + "compat6.lseek", /* 199 = old lseek */ + "compat6.truncate", /* 200 = old truncate */ + "compat6.ftruncate", /* 201 = old ftruncate */ "__sysctl", /* 202 = __sysctl */ "mlock", /* 203 = mlock */ "munlock", /* 204 = munlock */ @@ -304,7 +304,7 @@ "#294", /* 294 = nosys */ "#295", /* 295 = nosys */ "#296", /* 296 = nosys */ - "old.fhstatfs", /* 297 = old fhstatfs */ + "compat4.fhstatfs", /* 297 = old fhstatfs */ "fhopen", /* 298 = fhopen */ "fhstat", /* 299 = fhstat */ "modnext", /* 300 = modnext */ @@ -343,15 +343,15 @@ "sched_get_priority_min", /* 333 = sched_get_priority_min */ "sched_rr_get_interval", /* 334 = sched_rr_get_interval */ "utrace", /* 335 = utrace */ - "old.sendfile", /* 336 = old sendfile */ + "compat4.sendfile", /* 336 = old sendfile */ "kldsym", /* 337 = kldsym */ "jail", /* 338 = jail */ "#339", /* 339 = pioctl */ "sigprocmask", /* 340 = sigprocmask */ "sigsuspend", /* 341 = sigsuspend */ - "old.sigaction", /* 342 = old sigaction */ + "compat4.sigaction", /* 342 = old sigaction */ "sigpending", /* 343 = sigpending */ - "old.sigreturn", /* 344 = old sigreturn */ + "compat4.sigreturn", /* 344 = old sigreturn */ "sigtimedwait", /* 345 = sigtimedwait */ "sigwaitinfo", /* 346 = sigwaitinfo */ "__acl_get_file", /* 347 = __acl_get_file */ @@ -482,10 +482,10 @@ "sctp_generic_sendmsg", /* 472 = sctp_generic_sendmsg */ "sctp_generic_sendmsg_iov", /* 473 = sctp_generic_sendmsg_iov */ "sctp_generic_recvmsg", /* 474 = sctp_generic_recvmsg */ - "_new_pread", /* 475 = _new_pread */ - "_new_pwrite", /* 476 = _new_pwrite */ - "_new_mmap", /* 477 = _new_mmap */ - "_new_lseek", /* 478 = _new_lseek */ - "_new_truncate", /* 479 = _new_truncate */ - "_new_ftruncate", /* 480 = _new_ftruncate */ + "pread", /* 475 = pread */ + "pwrite", /* 476 = pwrite */ + "mmap", /* 477 = mmap */ + "lseek", /* 478 = lseek */ + "truncate", /* 479 = truncate */ + "ftruncate", /* 480 = ftruncate */ }; ==== //depot/projects/hammer/sys/kern/syscalls.master#59 (text+ko) ==== @@ -334,9 +334,9 @@ int a4); } ; XXX should be { int shmsys(int which, ...); } 172 AUE_NULL UNIMPL nosys -173 AUE_PREAD STD { ssize_t pread(int fd, void *buf, \ +173 AUE_PREAD COMPAT6 { ssize_t pread(int fd, void *buf, \ size_t nbyte, int pad, off_t offset); } -174 AUE_PWRITE STD { ssize_t pwrite(int fd, const void *buf, \ +174 AUE_PWRITE COMPAT6 { ssize_t pwrite(int fd, const void *buf, \ size_t nbyte, int pad, off_t offset); } 175 AUE_NULL UNIMPL nosys 176 AUE_NTP_ADJTIME STD { int ntp_adjtime(struct timex *tp); } @@ -367,16 +367,16 @@ __setrlimit_args int 196 AUE_GETDIRENTRIES STD { int getdirentries(int fd, char *buf, \ u_int count, long *basep); } -197 AUE_MMAP STD { caddr_t mmap(caddr_t addr, size_t len, \ +197 AUE_MMAP COMPAT6 { caddr_t mmap(caddr_t addr, size_t len, \ int prot, int flags, int fd, int pad, \ off_t pos); } 198 AUE_NULL STD { int nosys(void); } __syscall \ __syscall_args int -199 AUE_LSEEK STD { off_t lseek(int fd, int pad, off_t offset, \ +199 AUE_LSEEK COMPAT6 { off_t lseek(int fd, int pad, off_t offset, \ int whence); } -200 AUE_TRUNCATE STD { int truncate(char *path, int pad, \ +200 AUE_TRUNCATE COMPAT6 { int truncate(char *path, int pad, \ off_t length); } -201 AUE_FTRUNCATE STD { int ftruncate(int fd, int pad, \ +201 AUE_FTRUNCATE COMPAT6 { int ftruncate(int fd, int pad, \ off_t length); } 202 AUE_SYSCTL STD { int __sysctl(int *name, u_int namelen, \ void *old, size_t *oldlenp, void *new, \ @@ -838,15 +838,15 @@ 474 AUE_NULL STD { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ struct sockaddr * from, __socklen_t *fromlenaddr, \ struct sctp_sndrcvinfo *sinfo, int *msg_flags); } -475 AUE_PREAD STD { ssize_t _new_pread(int fd, void *buf, \ +475 AUE_PREAD STD { ssize_t pread(int fd, void *buf, \ size_t nbyte, off_t offset); } -476 AUE_PWRITE STD { ssize_t _new_pwrite(int fd, const void *buf, \ +476 AUE_PWRITE STD { ssize_t pwrite(int fd, const void *buf, \ size_t nbyte, off_t offset); } -477 AUE_MMAP STD { caddr_t _new_mmap(caddr_t addr, size_t len, \ +477 AUE_MMAP STD { caddr_t mmap(caddr_t addr, size_t len, \ int prot, int flags, int fd, off_t pos); } -478 AUE_LSEEK STD { off_t _new_lseek(int fd, off_t offset, \ +478 AUE_LSEEK STD { off_t lseek(int fd, off_t offset, \ int whence); } -479 AUE_TRUNCATE STD { int _new_truncate(char *path, off_t length); } -480 AUE_FTRUNCATE STD { int _new_ftruncate(int fd, off_t length); } +479 AUE_TRUNCATE STD { int truncate(char *path, off_t length); } +480 AUE_FTRUNCATE STD { int ftruncate(int fd, off_t length); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/hammer/sys/kern/systrace_args.c#4 (text+ko) ==== @@ -927,28 +927,6 @@ *n_args = 4; break; } - /* pread */ - case 173: { - struct pread_args *p = params; - iarg[0] = p->fd; /* int */ - uarg[1] = (intptr_t) p->buf; /* void * */ - uarg[2] = p->nbyte; /* size_t */ - iarg[3] = p->pad; /* int */ - iarg[4] = p->offset; /* off_t */ - *n_args = 5; - break; - } - /* pwrite */ - case 174: { - struct pwrite_args *p = params; - iarg[0] = p->fd; /* int */ - uarg[1] = (intptr_t) p->buf; /* const void * */ - uarg[2] = p->nbyte; /* size_t */ - iarg[3] = p->pad; /* int */ - iarg[4] = p->offset; /* off_t */ - *n_args = 5; - break; - } /* ntp_adjtime */ case 176: { struct ntp_adjtime_args *p = params; @@ -1043,52 +1021,11 @@ *n_args = 4; break; } - /* mmap */ - case 197: { - struct mmap_args *p = params; - uarg[0] = (intptr_t) p->addr; /* caddr_t */ - uarg[1] = p->len; /* size_t */ - iarg[2] = p->prot; /* int */ - iarg[3] = p->flags; /* int */ - iarg[4] = p->fd; /* int */ - iarg[5] = p->pad; /* int */ - iarg[6] = p->pos; /* off_t */ - *n_args = 7; - break; - } /* nosys */ case 198: { *n_args = 0; break; } - /* lseek */ - case 199: { - struct lseek_args *p = params; - iarg[0] = p->fd; /* int */ - iarg[1] = p->pad; /* int */ - iarg[2] = p->offset; /* off_t */ - iarg[3] = p->whence; /* int */ - *n_args = 4; - break; - } - /* truncate */ - case 200: { - struct truncate_args *p = params; - uarg[0] = (intptr_t) p->path; /* char * */ - iarg[1] = p->pad; /* int */ - iarg[2] = p->length; /* off_t */ - *n_args = 3; - break; - } - /* ftruncate */ - case 201: { - struct ftruncate_args *p = params; - iarg[0] = p->fd; /* int */ - iarg[1] = p->pad; /* int */ - iarg[2] = p->length; /* off_t */ - *n_args = 3; - break; - } /* __sysctl */ case 202: { struct sysctl_args *p = params; @@ -2832,9 +2769,9 @@ *n_args = 7; break; } - /* _new_pread */ + /* pread */ case 475: { - struct _new_pread_args *p = params; + struct pread_args *p = params; iarg[0] = p->fd; /* int */ uarg[1] = (intptr_t) p->buf; /* void * */ uarg[2] = p->nbyte; /* size_t */ @@ -2842,9 +2779,9 @@ *n_args = 4; break; } - /* _new_pwrite */ + /* pwrite */ case 476: { - struct _new_pwrite_args *p = params; + struct pwrite_args *p = params; iarg[0] = p->fd; /* int */ uarg[1] = (intptr_t) p->buf; /* const void * */ uarg[2] = p->nbyte; /* size_t */ @@ -2852,9 +2789,9 @@ *n_args = 4; break; } - /* _new_mmap */ + /* mmap */ case 477: { - struct _new_mmap_args *p = params; + struct mmap_args *p = params; uarg[0] = (intptr_t) p->addr; /* caddr_t */ uarg[1] = p->len; /* size_t */ iarg[2] = p->prot; /* int */ @@ -2864,26 +2801,26 @@ *n_args = 6; break; } - /* _new_lseek */ + /* lseek */ case 478: { - struct _new_lseek_args *p = params; + struct lseek_args *p = params; iarg[0] = p->fd; /* int */ iarg[1] = p->offset; /* off_t */ iarg[2] = p->whence; /* int */ *n_args = 3; break; } - /* _new_truncate */ + /* truncate */ case 479: { - struct _new_truncate_args *p = params; + struct truncate_args *p = params; uarg[0] = (intptr_t) p->path; /* char * */ iarg[1] = p->length; /* off_t */ *n_args = 2; break; } - /* _new_ftruncate */ + /* ftruncate */ case 480: { - struct _new_ftruncate_args *p = params; + struct ftruncate_args *p = params; iarg[0] = p->fd; /* int */ iarg[1] = p->length; /* off_t */ *n_args = 2; ==== //depot/projects/hammer/sys/sys/syscall.h#57 (text+ko) ==== @@ -24,7 +24,7 @@ #define SYS_chmod 15 #define SYS_chown 16 #define SYS_break 17 - /* 18 is old getfsstat */ +#define SYS_freebsd4_getfsstat 18 /* 19 is old lseek */ #define SYS_getpid 20 #define SYS_mount 21 @@ -156,8 +156,8 @@ /* 150 is old getsockname */ #define SYS_nfssvc 155 /* 156 is old getdirentries */ - /* 157 is old statfs */ - /* 158 is old fstatfs */ +#define SYS_freebsd4_statfs 157 +#define SYS_freebsd4_fstatfs 158 #define SYS_lgetfh 160 #define SYS_getfh 161 #define SYS_getdomainname 162 @@ -168,8 +168,8 @@ #define SYS_semsys 169 #define SYS_msgsys 170 #define SYS_shmsys 171 -#define SYS_pread 173 -#define SYS_pwrite 174 +#define SYS_freebsd6_pread 173 +#define SYS_freebsd6_pwrite 174 #define SYS_ntp_adjtime 176 #define SYS_setgid 181 #define SYS_setegid 182 @@ -182,11 +182,11 @@ #define SYS_getrlimit 194 #define SYS_setrlimit 195 #define SYS_getdirentries 196 -#define SYS_mmap 197 +#define SYS_freebsd6_mmap 197 #define SYS___syscall 198 -#define SYS_lseek 199 -#define SYS_truncate 200 -#define SYS_ftruncate 201 +#define SYS_freebsd6_lseek 199 +#define SYS_freebsd6_truncate 200 +#define SYS_freebsd6_ftruncate 201 #define SYS___sysctl 202 #define SYS_mlock 203 #define SYS_munlock 204 @@ -233,7 +233,7 @@ #define SYS_nlstat 280 #define SYS_preadv 289 #define SYS_pwritev 290 - /* 297 is old fhstatfs */ +#define SYS_freebsd4_fhstatfs 297 #define SYS_fhopen 298 #define SYS_fhstat 299 #define SYS_modnext 300 @@ -272,14 +272,14 @@ #define SYS_sched_get_priority_min 333 #define SYS_sched_rr_get_interval 334 #define SYS_utrace 335 - /* 336 is old sendfile */ +#define SYS_freebsd4_sendfile 336 #define SYS_kldsym 337 #define SYS_jail 338 #define SYS_sigprocmask 340 #define SYS_sigsuspend 341 - /* 342 is old sigaction */ +#define SYS_freebsd4_sigaction 342 #define SYS_sigpending 343 - /* 344 is old sigreturn */ +#define SYS_freebsd4_sigreturn 344 #define SYS_sigtimedwait 345 #define SYS_sigwaitinfo 346 #define SYS___acl_get_file 347 @@ -397,10 +397,10 @@ #define SYS_sctp_generic_sendmsg 472 #define SYS_sctp_generic_sendmsg_iov 473 #define SYS_sctp_generic_recvmsg 474 -#define SYS__new_pread 475 -#define SYS__new_pwrite 476 -#define SYS__new_mmap 477 -#define SYS__new_lseek 478 -#define SYS__new_truncate 479 -#define SYS__new_ftruncate 480 +#define SYS_pread 475 +#define SYS_pwrite 476 +#define SYS_mmap 477 +#define SYS_lseek 478 +#define SYS_truncate 479 +#define SYS_ftruncate 480 #define SYS_MAXSYSCALL 481 ==== //depot/projects/hammer/sys/sys/syscall.mk#57 (text+ko) ==== @@ -19,6 +19,7 @@ chmod.o \ chown.o \ break.o \ + freebsd4_getfsstat.o \ getpid.o \ mount.o \ unmount.o \ @@ -107,6 +108,8 @@ setsid.o \ quotactl.o \ nfssvc.o \ + freebsd4_statfs.o \ + freebsd4_fstatfs.o \ lgetfh.o \ getfh.o \ getdomainname.o \ @@ -117,8 +120,8 @@ semsys.o \ msgsys.o \ shmsys.o \ - pread.o \ - pwrite.o \ + freebsd6_pread.o \ + freebsd6_pwrite.o \ ntp_adjtime.o \ setgid.o \ setegid.o \ @@ -131,11 +134,11 @@ getrlimit.o \ setrlimit.o \ getdirentries.o \ - mmap.o \ + freebsd6_mmap.o \ __syscall.o \ - lseek.o \ - truncate.o \ - ftruncate.o \ + freebsd6_lseek.o \ + freebsd6_truncate.o \ + freebsd6_ftruncate.o \ __sysctl.o \ mlock.o \ munlock.o \ @@ -182,6 +185,7 @@ nlstat.o \ preadv.o \ pwritev.o \ + freebsd4_fhstatfs.o \ fhopen.o \ fhstat.o \ modnext.o \ @@ -217,11 +221,14 @@ sched_get_priority_min.o \ sched_rr_get_interval.o \ utrace.o \ + freebsd4_sendfile.o \ kldsym.o \ jail.o \ sigprocmask.o \ sigsuspend.o \ + freebsd4_sigaction.o \ sigpending.o \ + freebsd4_sigreturn.o \ sigtimedwait.o \ sigwaitinfo.o \ __acl_get_file.o \ @@ -339,9 +346,9 @@ sctp_generic_sendmsg.o \ sctp_generic_sendmsg_iov.o \ sctp_generic_recvmsg.o \ - _new_pread.o \ - _new_pwrite.o \ - _new_mmap.o \ - _new_lseek.o \ - _new_truncate.o \ - _new_ftruncate.o + pread.o \ + pwrite.o \ + mmap.o \ + lseek.o \ + truncate.o \ + ftruncate.o ==== //depot/projects/hammer/sys/sys/sysproto.h#58 (text+ko) ==== @@ -534,20 +534,6 @@ char a3_l_[PADL_(int)]; int a3; char a3_r_[PADR_(int)]; char a4_l_[PADL_(int)]; int a4; char a4_r_[PADR_(int)]; }; -struct pread_args { - char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; - char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; - char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; - char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; - char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; -}; -struct pwrite_args { - char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; - char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)]; - char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; - char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; - char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; -}; struct ntp_adjtime_args { char tp_l_[PADL_(struct timex *)]; struct timex * tp; char tp_r_[PADR_(struct timex *)]; }; @@ -594,31 +580,6 @@ char count_l_[PADL_(u_int)]; u_int count; char count_r_[PADR_(u_int)]; char basep_l_[PADL_(long *)]; long * basep; char basep_r_[PADR_(long *)]; }; -struct mmap_args { - char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; - char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; - char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; - char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; - char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; - char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; - char pos_l_[PADL_(off_t)]; off_t pos; char pos_r_[PADR_(off_t)]; -}; -struct lseek_args { - char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; - char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; - char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; - char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)]; -}; -struct truncate_args { - char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; - char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; - char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; -}; -struct ftruncate_args { - char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; - char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; - char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; -}; struct sysctl_args { char name_l_[PADL_(int *)]; int * name; char name_r_[PADR_(int *)]; char namelen_l_[PADL_(u_int)]; u_int namelen; char namelen_r_[PADR_(u_int)]; @@ -1497,19 +1458,19 @@ char sinfo_l_[PADL_(struct sctp_sndrcvinfo *)]; struct sctp_sndrcvinfo * sinfo; char sinfo_r_[PADR_(struct sctp_sndrcvinfo *)]; char msg_flags_l_[PADL_(int *)]; int * msg_flags; char msg_flags_r_[PADR_(int *)]; }; -struct _new_pread_args { +struct pread_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; }; -struct _new_pwrite_args { +struct pwrite_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)]; char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; }; -struct _new_mmap_args { +struct mmap_args { char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; @@ -1517,16 +1478,16 @@ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char pos_l_[PADL_(off_t)]; off_t pos; char pos_r_[PADR_(off_t)]; }; -struct _new_lseek_args { +struct lseek_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)]; }; -struct _new_truncate_args { +struct truncate_args { char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; }; -struct _new_ftruncate_args { +struct ftruncate_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; }; @@ -1644,8 +1605,6 @@ int semsys(struct thread *, struct semsys_args *); int msgsys(struct thread *, struct msgsys_args *); int shmsys(struct thread *, struct shmsys_args *); -int pread(struct thread *, struct pread_args *); -int pwrite(struct thread *, struct pwrite_args *); int ntp_adjtime(struct thread *, struct ntp_adjtime_args *); int setgid(struct thread *, struct setgid_args *); int setegid(struct thread *, struct setegid_args *); @@ -1658,10 +1617,6 @@ int getrlimit(struct thread *, struct __getrlimit_args *); int setrlimit(struct thread *, struct __setrlimit_args *); int getdirentries(struct thread *, struct getdirentries_args *); -int mmap(struct thread *, struct mmap_args *); -int lseek(struct thread *, struct lseek_args *); -int truncate(struct thread *, struct truncate_args *); -int ftruncate(struct thread *, struct ftruncate_args *); int __sysctl(struct thread *, struct sysctl_args *); int mlock(struct thread *, struct mlock_args *); int munlock(struct thread *, struct munlock_args *); @@ -1865,12 +1820,12 @@ int sctp_generic_sendmsg(struct thread *, struct sctp_generic_sendmsg_args *); int sctp_generic_sendmsg_iov(struct thread *, struct sctp_generic_sendmsg_iov_args *); int sctp_generic_recvmsg(struct thread *, struct sctp_generic_recvmsg_args *); -int _new_pread(struct thread *, struct _new_pread_args *); -int _new_pwrite(struct thread *, struct _new_pwrite_args *); -int _new_mmap(struct thread *, struct _new_mmap_args *); -int _new_lseek(struct thread *, struct _new_lseek_args *); -int _new_truncate(struct thread *, struct _new_truncate_args *); -int _new_ftruncate(struct thread *, struct _new_ftruncate_args *); +int pread(struct thread *, struct pread_args *); +int pwrite(struct thread *, struct pwrite_args *); +int mmap(struct thread *, struct mmap_args *); +int lseek(struct thread *, struct lseek_args *); +int truncate(struct thread *, struct truncate_args *); +int ftruncate(struct thread *, struct ftruncate_args *); #ifdef COMPAT_43 @@ -2090,6 +2045,57 @@ #endif /* COMPAT_FREEBSD4 */ + +#ifdef COMPAT_FREEBSD6 + +struct freebsd6_pread_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; + char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +struct freebsd6_pwrite_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)]; + char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +struct freebsd6_mmap_args { + char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; + char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; + char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char pos_l_[PADL_(off_t)]; off_t pos; char pos_r_[PADR_(off_t)]; +}; +struct freebsd6_lseek_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; + char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)]; +}; +struct freebsd6_truncate_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; +}; +struct freebsd6_ftruncate_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; +}; +int freebsd6_pread(struct thread *, struct freebsd6_pread_args *); +int freebsd6_pwrite(struct thread *, struct freebsd6_pwrite_args *); +int freebsd6_mmap(struct thread *, struct freebsd6_mmap_args *); +int freebsd6_lseek(struct thread *, struct freebsd6_lseek_args *); +int freebsd6_truncate(struct thread *, struct freebsd6_truncate_args *); +int freebsd6_ftruncate(struct thread *, struct freebsd6_ftruncate_args *); + +#endif /* COMPAT_FREEBSD6 */ + #define SYS_AUE_syscall AUE_NULL #define SYS_AUE_exit AUE_EXIT #define SYS_AUE_fork AUE_FORK @@ -2204,8 +2210,6 @@ #define SYS_AUE_semsys AUE_SEMSYS #define SYS_AUE_msgsys AUE_MSGSYS #define SYS_AUE_shmsys AUE_SHMSYS -#define SYS_AUE_pread AUE_PREAD -#define SYS_AUE_pwrite AUE_PWRITE #define SYS_AUE_ntp_adjtime AUE_NTP_ADJTIME #define SYS_AUE_setgid AUE_SETGID #define SYS_AUE_setegid AUE_SETEGID @@ -2218,10 +2222,6 @@ #define SYS_AUE_getrlimit AUE_GETRLIMIT #define SYS_AUE_setrlimit AUE_SETRLIMIT #define SYS_AUE_getdirentries AUE_GETDIRENTRIES -#define SYS_AUE_mmap AUE_MMAP -#define SYS_AUE_lseek AUE_LSEEK -#define SYS_AUE_truncate AUE_TRUNCATE -#define SYS_AUE_ftruncate AUE_FTRUNCATE #define SYS_AUE___sysctl AUE_SYSCTL #define SYS_AUE_mlock AUE_MLOCK #define SYS_AUE_munlock AUE_MUNLOCK @@ -2425,12 +2425,12 @@ #define SYS_AUE_sctp_generic_sendmsg AUE_NULL #define SYS_AUE_sctp_generic_sendmsg_iov AUE_NULL #define SYS_AUE_sctp_generic_recvmsg AUE_NULL -#define SYS_AUE__new_pread AUE_PREAD -#define SYS_AUE__new_pwrite AUE_PWRITE -#define SYS_AUE__new_mmap AUE_MMAP -#define SYS_AUE__new_lseek AUE_LSEEK -#define SYS_AUE__new_truncate AUE_TRUNCATE -#define SYS_AUE__new_ftruncate AUE_FTRUNCATE +#define SYS_AUE_pread AUE_PREAD +#define SYS_AUE_pwrite AUE_PWRITE +#define SYS_AUE_mmap AUE_MMAP +#define SYS_AUE_lseek AUE_LSEEK +#define SYS_AUE_truncate AUE_TRUNCATE +#define SYS_AUE_ftruncate AUE_FTRUNCATE #undef PAD_ #undef PADL_
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707010810.l618A5Sr076199>