/*- * Copyright (c) 1982, 1988, 1991 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * from: @(#)systm.h 7.17 (Berkeley) 5/25/91 * $Id: systm.h,v 1.7 1993/10/08 20:59:39 rgrimes Exp $ */ #ifndef _SYS_SYSTM_H_ #define _SYS_SYSTM_H_ extern struct sysent { /* system call table */ int sy_narg; /* number of arguments */ int (*sy_call)(); /* implementing function */ } sysent[]; /* Prototypes I needed to fix that kern_exit warning ---- this really the first step in the work that's been done on sun-lamp to add kernel function prototypes. */ void kexit __P((struct proc *, int)); void cpu_exit __P((struct proc *)); void swtch __P((void)); extern const char *panicstr; /* panic message */ extern char version[]; /* system version */ extern char copyright[]; /* system copyright */ extern int nblkdev; /* number of entries in bdevsw */ extern int nchrdev; /* number of entries in cdevsw */ extern int nswdev; /* number of swap devices */ extern int nswap; /* size of swap space */ extern int selwait; /* select timeout address */ extern u_char curpri; /* priority of current process */ extern int maxmem; /* max memory per process */ extern int physmem; /* physical memory */ extern dev_t dumpdev; /* dump device */ extern long dumplo; /* offset into dumpdev */ extern dev_t rootdev; /* root device */ extern struct vnode *rootvp; /* vnode equivalent to above */ extern dev_t swapdev; /* swapping device */ extern struct vnode *swapdev_vp;/* vnode equivalent to above */ extern int boothowto; /* reboot flags, from console subsystem */ #ifdef KADB extern char *bootesym; /* end of symbol info from boot */ #endif /* casts to keep lint happy */ #define insque(q,p) _insque((caddr_t)q,(caddr_t)p) #define remque(q) _remque((caddr_t)q) /* * General function declarations. */ int nullop __P((void)); int enodev __P((void)); int enoioctl __P((void)); int enxio __P((void)); int eopnotsupp __P((void)); int selscan __P((struct proc *p, fd_set *ibits, fd_set *obits, int nfd, int *retval)); int seltrue __P((dev_t dev, int which, struct proc *p)); void selwakeup __P((pid_t pid, int coll)); __dead void panic __P((const char *)); void tablefull __P((char *)); int addlog __P((const char *, ...)); void log __P((int, const char *, ...)); int printf __P((const char *, ...)); int sprintf __P((char *buf, const char *, ...)); void ttyprintf __P((struct tty *, const char *, ...)); void bcopy __P((void *from, void *to, u_int len)); void ovbcopy __P((void *from, void *to, u_int len)); void bzero __P((void *buf, u_int len)); static int bcmp __P((void *str1, void *str2, u_int len)); static size_t strlen __P((const char *string)); int copystr __P((void *kfaddr, void *kdaddr, u_int len, u_int *done)); int copyinstr __P((void *udaddr, void *kaddr, u_int len, u_int *done)); int copyoutstr __P((void *kaddr, void *udaddr, u_int len, u_int *done)); int copyin __P((void *udaddr, void *kaddr, u_int len)); int copyout __P((void *kaddr, void *udaddr, u_int len)); int fubyte __P((void *base)); #ifdef notdef int fuibyte __P((void *base)); #endif int subyte __P((void *base, int byte)); int suibyte __P((void *base, int byte)); int fuword __P((void *base)); int fuiword __P((void *base)); int suword __P((void *base, int word)); int suiword __P((void *base, int word)); int scanc __P((unsigned size, u_char *cp, u_char *table, int mask)); int skpc __P((int mask, int size, char *cp)); int locc __P((int mask, char *cp, unsigned size)); static int ffs __P((long value)); /* * XXX - a lot were missing. A lot are still missing. Some of the above * are inconsistent with ANSI C. I fixed strlen. Others are inconsistent * with with non-ANSI C due to having unpromoted args. */ #define nonint int /* really void */ struct proc; struct ringb; struct speedtab; typedef nonint (*timeout_func_t) __P((caddr_t arg, int ticks)); nonint DELAY __P((int count)); int getc __P((struct ringb *rbp)); void psignal __P((struct proc *p, int sig)); size_t rb_write __P((struct ringb *to, char *buf, size_t nfrom)); void spinwait __P((int millisecs)); int splhigh __P((void)); int spltty __P((void)); int splx __P((int new_pri)); #ifdef notyet nonint timeout __P((timeout_func_t func, caddr_t arg, int t)); #endif void trapsignal __P((struct proc *p, int sig, unsigned code)); int ttioctl __P((struct tty *tp, int com, caddr_t data, int flag)); nonint ttsetwater __P((struct tty *tp)); nonint ttstart __P((struct tty *tp)); nonint ttychars __P((struct tty *tp)); int ttyclose __P((struct tty *tp)); nonint ttyinput __P((int c, struct tty *tp)); int ttysleep __P((struct tty *tp, caddr_t chan, int pri, char *wmesg, int timo)); int ttspeedtab __P((int speed, struct speedtab *table)); nonint ttwakeup __P((struct tty *tp)); #ifdef notyet nonint wakeup __P((caddr_t chan)); #endif #undef nonint /* * Machine-dependent function declarations. */ #include#endif /* _SYS_SYSTM_H_ */