syscalls.master revision 1.26
11.26Scgd	$NetBSD: syscalls.master,v 1.26 1995/01/06 00:08:17 cgd Exp $
21.22Scgd;	@(#)syscalls.master	8.2 (Berkeley) 1/13/94
31.1Sglass
41.23Scgd; NetBSD system call name/number "master" file.
51.23Scgd; (See syscalls.conf to see what it is processed into.)
61.23Scgd;
71.23Scgd; Fields: number type [type-dependent ...]
81.1Sglass;	number	system call number, must be in order
91.23Scgd;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
101.24Smycroft;		the compatibility options defined in syscalls.conf.
111.23Scgd;
121.1Sglass; types:
131.1Sglass;	STD	always included
141.23Scgd;	OBSOL	obsolete, not included in system
151.24Smycroft;	UNIMPL	unimplemented, not included in system
161.23Scgd;	NODEF	included, but don't define the syscall number
171.23Scgd;	NOARGS	included, but don't define the syscall args structure
181.23Scgd;
191.23Scgd; The compat options are defined in the syscalls.conf file, and the
201.23Scgd; compat option name is prefixed to the syscall name.  Other than
211.23Scgd; that, they're like NODEF (for 'compat' options), or STD (for
221.23Scgd; 'libcompat' options).
231.23Scgd;
241.23Scgd; The type-dependent arguments are as follows:
251.23Scgd; For STD, NODEF, NOARGS, and compat syscalls:
261.23Scgd;	{ pseudo-proto } [alias]
271.23Scgd; For other syscalls:
281.23Scgd;	[comment]
291.23Scgd;
301.23Scgd; #ifdef's, etc. may be included, and are copied to the output files.
311.23Scgd; #include's are copied to the syscall switch definition file only.
321.1Sglass
331.23Scgd#include <sys/param.h>
341.23Scgd#include <sys/systm.h>
351.23Scgd#include <sys/signal.h>
361.23Scgd#include <sys/mount.h>
371.23Scgd#include <sys/syscallargs.h>
381.1Sglass
391.1Sglass; Reserved/unimplemented system calls in the range 0-150 inclusive
401.1Sglass; are reserved for use in future Berkeley releases.
411.1Sglass; Additional system calls implemented in vendor and other
421.1Sglass; redistributions should be placed in the reserved range at the end
431.1Sglass; of the current calls.
441.1Sglass
451.23Scgd0	STD		{ int nosys(void); } syscall
461.23Scgd1	STD		{ int exit(int rval); }
471.23Scgd2	STD		{ int fork(void); }
481.23Scgd3	STD		{ int read(int fd, char *buf, u_int nbyte); }
491.23Scgd4	STD		{ int write(int fd, char *buf, u_int nbyte); }
501.23Scgd5	STD		{ int open(char *path, int flags, int mode); }
511.23Scgd6	STD		{ int close(int fd); }
521.23Scgd7	STD		{ int wait4(int pid, int *status, int options, \
531.23Scgd			    struct rusage *rusage); }
541.23Scgd8	COMPAT_43	{ int creat(char *path, int mode); }
551.23Scgd9	STD		{ int link(char *path, char *link); }
561.23Scgd10	STD		{ int unlink(char *path); }
571.23Scgd11	OBSOL		execv
581.23Scgd12	STD		{ int chdir(char *path); }
591.23Scgd13	STD		{ int fchdir(int fd); }
601.23Scgd14	STD		{ int mknod(char *path, int mode, int dev); }
611.23Scgd15	STD		{ int chmod(char *path, int mode); }
621.23Scgd16	STD		{ int chown(char *path, int uid, int gid); }
631.23Scgd17	STD		{ int obreak(char *nsize); } break
641.23Scgd18	STD		{ int getfsstat(struct statfs *buf, long bufsize, \
651.23Scgd			    int flags); }
661.23Scgd19	COMPAT_43	{ long lseek(int fd, long offset, int whence); }
671.23Scgd20	STD		{ pid_t getpid(void); }
681.23Scgd21	STD		{ int mount(char *type, char *path, int flags, \
691.23Scgd			    caddr_t data); }
701.23Scgd22	STD		{ int unmount(char *path, int flags); }
711.23Scgd23	STD		{ int setuid(uid_t uid); }
721.23Scgd24	STD		{ uid_t getuid(void); }
731.23Scgd25	STD		{ uid_t geteuid(void); }
741.23Scgd26	STD		{ int ptrace(int req, pid_t pid, caddr_t addr, \
751.23Scgd			    int data); }
761.23Scgd27	STD		{ int recvmsg(int s, struct msghdr *msg, int flags); }
771.23Scgd28	STD		{ int sendmsg(int s, caddr_t msg, int flags); }
781.23Scgd29	STD		{ int recvfrom(int s, caddr_t buf, size_t len, \
791.23Scgd			    int flags, caddr_t from, int *fromlenaddr); }
801.23Scgd30	STD		{ int accept(int s, caddr_t name, int *anamelen); }
811.23Scgd31	STD		{ int getpeername(int fdes, caddr_t asa, int *alen); }
821.23Scgd32	STD		{ int getsockname(int fdes, caddr_t asa, int *alen); }
831.23Scgd33	STD		{ int access(char *path, int flags); }
841.23Scgd34	STD		{ int chflags(char *path, int flags); }
851.23Scgd35	STD		{ int fchflags(int fd, int flags); }
861.23Scgd36	STD		{ int sync(void); }
871.23Scgd37	STD		{ int kill(int pid, int signum); }
881.23Scgd38	COMPAT_43	{ int stat(char *path, struct ostat *ub); }
891.23Scgd39	STD		{ pid_t getppid(void); }
901.23Scgd40	COMPAT_43	{ int lstat(char *path, struct ostat *ub); }
911.23Scgd41	STD		{ int dup(u_int fd); }
921.23Scgd42	STD		{ int pipe(void); }
931.23Scgd43	STD		{ gid_t getegid(void); }
941.23Scgd44	STD		{ int profil(caddr_t samples, u_int size, \
951.23Scgd			    u_int offset, u_int scale); }
961.1Sglass#ifdef KTRACE
971.23Scgd45	STD		{ int ktrace(char *fname, int ops, int facs, \
981.23Scgd			    int pid); }
991.1Sglass#else
1001.23Scgd45	UNIMPL		ktrace
1011.1Sglass#endif
1021.23Scgd46	STD		{ int sigaction(int signum, struct sigaction *nsa, \
1031.23Scgd			    struct sigaction *osa); }
1041.23Scgd47	STD		{ gid_t getgid(void); }
1051.23Scgd48	STD		{ int sigprocmask(int how, sigset_t mask); }
1061.23Scgd49	STD		{ int getlogin(char *namebuf, u_int namelen); }
1071.23Scgd50	STD		{ int setlogin(char *namebuf); }
1081.23Scgd51	STD		{ int acct(char *path); }
1091.23Scgd52	STD		{ int sigpending(void); }
1101.23Scgd53	STD		{ int sigaltstack(struct sigaltstack *nss, \
1111.23Scgd			    struct sigaltstack *oss); }
1121.23Scgd54	STD		{ int ioctl(int fd, u_long com, caddr_t data); }
1131.23Scgd55	STD		{ int reboot(int opt); }
1141.23Scgd56	STD		{ int revoke(char *path); }
1151.23Scgd57	STD		{ int symlink(char *path, char *link); }
1161.23Scgd58	STD		{ int readlink(char *path, char *buf, int count); }
1171.23Scgd59	STD		{ int execve(char *path, char **argp, char **envp); }
1181.23Scgd60	STD		{ int umask(int newmask); }
1191.23Scgd61	STD		{ int chroot(char *path); }
1201.23Scgd62	COMPAT_43	{ int fstat(int fd, struct ostat *sb); }
1211.23Scgd63	COMPAT_43	{ int getkerninfo(int op, char *where, int *size, \
1221.23Scgd			    int arg); }
1231.23Scgd64	COMPAT_43	{ int getpagesize(void); }
1241.23Scgd65	STD		{ int msync(caddr_t addr, int len); }
1251.23Scgd66	STD		{ int vfork(void); }
1261.23Scgd67	OBSOL		vread
1271.23Scgd68	OBSOL		vwrite
1281.23Scgd69	STD		{ int sbrk(int incr); }
1291.23Scgd70	STD		{ int sstk(int incr); }
1301.23Scgd71	COMPAT_43	{ int mmap(caddr_t addr, int len, int prot, \
1311.23Scgd			    int flags, int fd, long pos); }
1321.23Scgd72	STD		{ int ovadvise(int anom); } vadvise
1331.23Scgd73	STD		{ int munmap(caddr_t addr, int len); }
1341.23Scgd74	STD		{ int mprotect(caddr_t addr, int len, int prot); }
1351.23Scgd75	STD		{ int madvise(caddr_t addr, int len, int behav); }
1361.23Scgd76	OBSOL		vhangup
1371.23Scgd77	OBSOL		vlimit
1381.23Scgd78	STD		{ int mincore(caddr_t addr, int len, char *vec); }
1391.23Scgd79	STD		{ int getgroups(u_int gidsetsize, gid_t *gidset); }
1401.23Scgd80	STD		{ int setgroups(u_int gidsetsize, gid_t *gidset); }
1411.23Scgd81	STD		{ int getpgrp(void); }
1421.23Scgd82	STD		{ int setpgid(int pid, int pgid); }
1431.23Scgd83	STD		{ int setitimer(u_int which, struct itimerval *itv, \
1441.23Scgd			    struct itimerval *oitv); }
1451.23Scgd84	COMPAT_43	{ int wait(void); }
1461.23Scgd85	STD		{ int swapon(char *name); }
1471.23Scgd86	STD		{ int getitimer(u_int which, struct itimerval *itv); }
1481.23Scgd87	COMPAT_43	{ int gethostname(char *hostname, u_int len); }
1491.23Scgd88	COMPAT_43	{ int sethostname(char *hostname, u_int len); }
1501.23Scgd89	COMPAT_43	{ int getdtablesize(void); }
1511.23Scgd90	STD		{ int dup2(u_int from, u_int to); }
1521.23Scgd91	UNIMPL		getdopt
1531.23Scgd92	STD		{ int fcntl(int fd, int cmd, void *arg); }
1541.23Scgd93	STD		{ int select(u_int nd, fd_set *in, fd_set *ou, \
1551.23Scgd			    fd_set *ex, struct timeval *tv); }
1561.23Scgd94	UNIMPL		setdopt
1571.23Scgd95	STD		{ int fsync(int fd); }
1581.23Scgd96	STD		{ int setpriority(int which, int who, int prio); }
1591.23Scgd97	STD		{ int socket(int domain, int type, int protocol); }
1601.23Scgd98	STD		{ int connect(int s, caddr_t name, int namelen); }
1611.23Scgd99	COMPAT_43	{ int accept(int s, caddr_t name, int *anamelen); }
1621.23Scgd100	STD		{ int getpriority(int which, int who); }
1631.23Scgd101	COMPAT_43	{ int send(int s, caddr_t buf, int len, int flags); }
1641.23Scgd102	COMPAT_43	{ int recv(int s, caddr_t buf, int len, int flags); }
1651.23Scgd103	STD		{ int sigreturn(struct sigcontext *sigcntxp); }
1661.23Scgd104	STD		{ int bind(int s, caddr_t name, int namelen); }
1671.23Scgd105	STD		{ int setsockopt(int s, int level, int name, \
1681.23Scgd			    caddr_t val, int valsize); }
1691.23Scgd106	STD		{ int listen(int s, int backlog); }
1701.23Scgd107	OBSOL		vtimes
1711.23Scgd108	COMPAT_43	{ int sigvec(int signum, struct sigvec *nsv, \
1721.23Scgd			    struct sigvec *osv); }
1731.23Scgd109	COMPAT_43	{ int sigblock(int mask); }
1741.23Scgd110	COMPAT_43	{ int sigsetmask(int mask); }
1751.23Scgd111	STD		{ int sigsuspend(int mask); }
1761.23Scgd112	COMPAT_43	{ int sigstack(struct sigstack *nss, \
1771.23Scgd			    struct sigstack *oss); }
1781.23Scgd113	COMPAT_43	{ int recvmsg(int s, struct omsghdr *msg, int flags); }
1791.23Scgd114	COMPAT_43	{ int sendmsg(int s, caddr_t msg, int flags); }
1801.1Sglass#ifdef TRACE
1811.23Scgd115	STD		{ int vtrace(int request, int value); }
1821.1Sglass#else
1831.23Scgd115	OBSOL		vtrace
1841.1Sglass#endif
1851.23Scgd116	STD		{ int gettimeofday(struct timeval *tp, \
1861.23Scgd			    struct timezone *tzp); }
1871.23Scgd117	STD		{ int getrusage(int who, struct rusage *rusage); }
1881.23Scgd118	STD		{ int getsockopt(int s, int level, int name, \
1891.23Scgd			    caddr_t val, int *avalsize); }
1901.26Scgd119	OBSOL		resuba
1911.23Scgd120	STD		{ int readv(int fd, struct iovec *iovp, u_int iovcnt); }
1921.23Scgd121	STD		{ int writev(int fd, struct iovec *iovp, \
1931.23Scgd			    u_int iovcnt); }
1941.23Scgd122	STD		{ int settimeofday(struct timeval *tv, \
1951.23Scgd			    struct timezone *tzp); }
1961.23Scgd123	STD		{ int fchown(int fd, int uid, int gid); }
1971.23Scgd124	STD		{ int fchmod(int fd, int mode); }
1981.23Scgd125	COMPAT_43	{ int recvfrom(int s, caddr_t buf, size_t len, \
1991.23Scgd			    int flags, caddr_t from, int *fromlenaddr); }
2001.23Scgd126	COMPAT_43	{ int setreuid(int ruid, int euid); }
2011.23Scgd127	COMPAT_43	{ int setregid(int rgid, int egid); }
2021.23Scgd128	STD		{ int rename(char *from, char *to); }
2031.23Scgd129	COMPAT_43	{ int truncate(char *path, long length); }
2041.23Scgd130	COMPAT_43	{ int ftruncate(int fd, long length); }
2051.23Scgd131	STD		{ int flock(int fd, int how); }
2061.23Scgd132	STD		{ int mkfifo(char *path, int mode); }
2071.23Scgd133	STD		{ int sendto(int s, caddr_t buf, size_t len, \
2081.23Scgd			    int flags, caddr_t to, int tolen); }
2091.23Scgd134	STD		{ int shutdown(int s, int how); }
2101.23Scgd135	STD		{ int socketpair(int domain, int type, int protocol, \
2111.23Scgd			    int *rsv); }
2121.23Scgd136	STD		{ int mkdir(char *path, int mode); }
2131.23Scgd137	STD		{ int rmdir(char *path); }
2141.23Scgd138	STD		{ int utimes(char *path, struct timeval *tptr); }
2151.23Scgd139	OBSOL		4.2 sigreturn
2161.23Scgd140	STD		{ int adjtime(struct timeval *delta, \
2171.23Scgd			    struct timeval *olddelta); }
2181.23Scgd141	COMPAT_43	{ int getpeername(int fdes, caddr_t asa, int *alen); }
2191.23Scgd142	COMPAT_43	{ int32_t gethostid(void); }
2201.23Scgd143	COMPAT_43	{ int sethostid(int32_t hostid); }
2211.23Scgd144	COMPAT_43	{ int getrlimit(u_int which, struct ogetrlimit *rlp); }
2221.23Scgd145	COMPAT_43	{ int setrlimit(u_int which, struct ogetrlimit *rlp); }
2231.23Scgd146	COMPAT_43	{ int killpg(int pgid, int signum); }
2241.23Scgd147	STD		{ int setsid(void); }
2251.23Scgd148	STD		{ int quotactl(char *path, int cmd, int uid, \
2261.23Scgd			    caddr_t arg); }
2271.23Scgd149	COMPAT_43	{ int quota(void); }
2281.23Scgd150	COMPAT_43	{ int getsockname(int fdec, caddr_t asa, int *alen); }
2291.1Sglass
2301.1Sglass; Syscalls 151-180 inclusive are reserved for vendor-specific
2311.1Sglass; system calls.  (This includes various calls added for compatibity
2321.1Sglass; with other Unix variants.)
2331.1Sglass; Some of these calls are now supported by BSD...
2341.23Scgd151	UNIMPL
2351.23Scgd152	UNIMPL
2361.23Scgd153	UNIMPL
2371.23Scgd154	UNIMPL
2381.20Smycroft#if defined(NFSCLIENT) || defined(NFSSERVER)
2391.23Scgd155	STD		{ int nfssvc(int flag, caddr_t argp); }
2401.1Sglass#else
2411.23Scgd155	UNIMPL
2421.1Sglass#endif
2431.23Scgd156	COMPAT_43	{ int getdirentries(int fd, char *buf, u_int count, \
2441.23Scgd			    long *basep); }
2451.23Scgd157	STD		{ int statfs(char *path, struct statfs *buf); }
2461.23Scgd158	STD		{ int fstatfs(int fd, struct statfs *buf); }
2471.23Scgd159	UNIMPL
2481.23Scgd160	UNIMPL
2491.2Sglass#ifdef NFSCLIENT
2501.23Scgd161	STD		{ int getfh(char *fname, fhandle_t *fhp); }
2511.1Sglass#else
2521.23Scgd161	UNIMPL		getfh
2531.1Sglass#endif
2541.23Scgd162	COMPAT_09	{ int getdomainname(char *domainname, int len); }
2551.23Scgd163	COMPAT_09	{ int setdomainname(char *domainname, int len); }
2561.23Scgd164	COMPAT_09	{ int uname(struct outsname *name); }
2571.23Scgd165	STD		{ int sysarch(int op, char *parms); }
2581.23Scgd166	UNIMPL
2591.23Scgd167	UNIMPL
2601.23Scgd168	UNIMPL
2611.23Scgd; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
2621.23Scgd#if defined(SYSVSEM) && !defined(alpha)
2631.23Scgd169	COMPAT_10	{ int semsys(int which, int a2, int a3, int a4, \
2641.23Scgd			    int a5); }
2651.9Scgd#else
2661.23Scgd169	UNIMPL		1.0 semsys
2671.9Scgd#endif
2681.23Scgd; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
2691.23Scgd#if defined(SYSVMSG) && !defined(alpha)
2701.23Scgd170	COMPAT_10	{ int msgsys(int which, int a2, int a3, int a4, \
2711.23Scgd			    int a5, int a6); }
2721.9Scgd#else
2731.23Scgd170	UNIMPL		1.0 msgsys
2741.9Scgd#endif
2751.23Scgd; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
2761.23Scgd#if defined(SYSVSHM) && !defined(alpha)
2771.23Scgd171	COMPAT_10	{ int shmsys(int which, int a2, int a3, int a4); }
2781.1Sglass#else
2791.23Scgd171	UNIMPL		1.0 shmsys
2801.1Sglass#endif
2811.23Scgd172	UNIMPL
2821.23Scgd173	UNIMPL
2831.23Scgd174	UNIMPL
2841.23Scgd175	UNIMPL
2851.23Scgd176	UNIMPL
2861.23Scgd177	UNIMPL
2871.23Scgd178	UNIMPL
2881.23Scgd179	UNIMPL
2891.23Scgd180	UNIMPL
2901.1Sglass
2911.1Sglass; Syscalls 180-199 are used by/reserved for BSD
2921.23Scgd181	STD		{ int setgid(gid_t gid); }
2931.23Scgd182	STD		{ int setegid(gid_t egid); }
2941.23Scgd183	STD		{ int seteuid(uid_t euid); }
2951.17Scgd#ifdef LFS
2961.23Scgd184	STD		{ int lfs_bmapv(fsid_t *fsidp, \
2971.23Scgd			    struct block_info *blkiov, int blkcnt); }
2981.23Scgd185	STD		{ int lfs_markv(fsid_t *fsidp, \
2991.23Scgd			    struct block_info *blkiov, int blkcnt); }
3001.23Scgd186	STD		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
3011.23Scgd187	STD		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
3021.23Scgd#else
3031.23Scgd184	UNIMPL
3041.23Scgd185	UNIMPL
3051.23Scgd186	UNIMPL
3061.23Scgd187	UNIMPL
3071.23Scgd#endif
3081.23Scgd188	STD		{ int stat(char *path, struct stat *ub); }
3091.23Scgd189	STD		{ int fstat(int fd, struct stat *sb); }
3101.23Scgd190	STD		{ int lstat(char *path, struct stat *ub); }
3111.23Scgd191	STD		{ int pathconf(char *path, int name); }
3121.23Scgd192	STD		{ int fpathconf(int fd, int name); }
3131.23Scgd193	UNIMPL
3141.23Scgd194	STD		{ int getrlimit(u_int which, struct rlimit *rlp); }
3151.23Scgd195	STD		{ int setrlimit(u_int which, struct rlimit *rlp); }
3161.23Scgd196	STD		{ int getdirentries(int fd, char *buf, u_int count, \
3171.23Scgd			    long *basep); }
3181.23Scgd197	STD		{ caddr_t mmap(caddr_t addr, size_t len, int prot, \
3191.23Scgd			    int flags, int fd, long pad, off_t pos); }
3201.23Scgd198	STD		{ int nosys(void); } __syscall
3211.23Scgd199	STD		{ off_t lseek(int fd, int pad, off_t offset, \
3221.23Scgd			    int whence); }
3231.23Scgd200	STD		{ int truncate(char *path, int pad, off_t length); }
3241.23Scgd201	STD		{ int ftruncate(int fd, int pad, off_t length); }
3251.23Scgd202	STD		{ int __sysctl(int *name, u_int namelen, void *old, \
3261.23Scgd			    size_t *oldlenp, void *new, size_t newlen); }
3271.23Scgd203	STD		{ int mlock(caddr_t addr, size_t len); }
3281.23Scgd204	STD		{ int munlock(caddr_t addr, size_t len); }
3291.25Smycroft205	STD		{ int undelete(char *path); }
3301.23Scgd206	UNIMPL
3311.23Scgd207	UNIMPL
3321.23Scgd208	UNIMPL
3331.23Scgd209	UNIMPL
3341.11Scgd;
3351.11Scgd; Syscalls 210-219 are reserved for dynamically loaded syscalls
3361.11Scgd;
3371.11Scgd#ifdef LKM
3381.23Scgd210	NODEF		{ int lkmnosys(void); }
3391.23Scgd211	NODEF		{ int lkmnosys(void); }
3401.23Scgd212	NODEF		{ int lkmnosys(void); }
3411.23Scgd213	NODEF		{ int lkmnosys(void); }
3421.23Scgd214	NODEF		{ int lkmnosys(void); }
3431.23Scgd215	NODEF		{ int lkmnosys(void); }
3441.23Scgd216	NODEF		{ int lkmnosys(void); }
3451.23Scgd217	NODEF		{ int lkmnosys(void); }
3461.23Scgd218	NODEF		{ int lkmnosys(void); }
3471.23Scgd219	NODEF		{ int lkmnosys(void); }
3481.11Scgd#else	/* !LKM */
3491.23Scgd210	UNIMPL
3501.23Scgd211	UNIMPL
3511.23Scgd212	UNIMPL
3521.23Scgd213	UNIMPL
3531.23Scgd214	UNIMPL
3541.23Scgd215	UNIMPL
3551.23Scgd216	UNIMPL
3561.23Scgd217	UNIMPL
3571.23Scgd218	UNIMPL
3581.23Scgd219	UNIMPL
3591.6Scgd#endif	/* !LKM */
3601.23Scgd; System calls 220-240 are reserved for use by NetBSD
3611.23Scgd#ifdef SYSVSEM
3621.23Scgd220	STD		{ int __semctl(int semid, int semnum, int cmd, \
3631.23Scgd			    union semun *arg); }
3641.23Scgd221	STD		{ int semget(key_t key, int nsems, int semflg); }
3651.23Scgd222	STD		{ int semop(int semid, struct sembuf *sops, \
3661.23Scgd			    u_int nsops); }
3671.23Scgd223	STD		{ int semconfig(int flag); }
3681.23Scgd#else
3691.23Scgd220	UNIMPL		semctl
3701.23Scgd221	UNIMPL		semget
3711.23Scgd222	UNIMPL		semop
3721.23Scgd223	UNIMPL		semconfig
3731.23Scgd#endif
3741.23Scgd#ifdef SYSVMSG
3751.23Scgd224	STD		{ int msgctl(int msqid, int cmd, \
3761.23Scgd			    struct msqid_ds *buf); }
3771.23Scgd225	STD		{ int msgget(key_t key, int msgflg); }
3781.23Scgd226	STD		{ int msgsnd(int msqid, void *msgp, size_t msgsz, \
3791.23Scgd			    int msgflg); }
3801.23Scgd227	STD		{ int msgrcv(int msqid, void *msgp, size_t msgsz, \
3811.23Scgd			    long msgtyp, int msgflg); }
3821.23Scgd#else
3831.23Scgd224	UNIMPL		msgctl
3841.23Scgd225	UNIMPL		msgget
3851.23Scgd226	UNIMPL		msgsnd
3861.23Scgd227	UNIMPL		msgrcv
3871.23Scgd#endif
3881.23Scgd#ifdef SYSVSHM
3891.23Scgd228	STD		{ int shmat(int shmid, void *shmaddr, int shmflg); }
3901.23Scgd229	STD		{ int shmctl(int shmid, int cmd, \
3911.23Scgd			    struct shmid_ds *buf); }
3921.23Scgd230	STD		{ int shmdt(void *shmaddr); }
3931.23Scgd231	STD		{ int shmget(key_t key, int size, int shmflg); }
3941.23Scgd#else
3951.23Scgd228	UNIMPL		shmat
3961.23Scgd229	UNIMPL		shmctl
3971.23Scgd230	UNIMPL		shmdt
3981.23Scgd231	UNIMPL		shmget
3991.23Scgd#endif
400