The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/sys/systm.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 1982, 1988, 1991, 1993
    3  *      The Regents of the University of California.  All rights reserved.
    4  * (c) UNIX System Laboratories, Inc.
    5  * All or some portions of this file are derived from material licensed
    6  * to the University of California by American Telephone and Telegraph
    7  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
    8  * the permission of UNIX System Laboratories, Inc.
    9  *
   10  * Redistribution and use in source and binary forms, with or without
   11  * modification, are permitted provided that the following conditions
   12  * are met:
   13  * 1. Redistributions of source code must retain the above copyright
   14  *    notice, this list of conditions and the following disclaimer.
   15  * 2. Redistributions in binary form must reproduce the above copyright
   16  *    notice, this list of conditions and the following disclaimer in the
   17  *    documentation and/or other materials provided with the distribution.
   18  * 3. All advertising materials mentioning features or use of this software
   19  *    must display the following acknowledgement:
   20  *      This product includes software developed by the University of
   21  *      California, Berkeley and its contributors.
   22  * 4. Neither the name of the University nor the names of its contributors
   23  *    may be used to endorse or promote products derived from this software
   24  *    without specific prior written permission.
   25  *
   26  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   27  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   28  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   29  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   30  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   31  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   32  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   36  * SUCH DAMAGE.
   37  *
   38  *      @(#)systm.h     8.7 (Berkeley) 3/29/95
   39  * $FreeBSD: src/sys/sys/systm.h,v 1.47.2.4 1999/09/05 08:23:02 peter Exp $
   40  */
   41 
   42 #ifndef _SYS_SYSTM_H_
   43 #define _SYS_SYSTM_H_
   44 
   45 #include <machine/cpufunc.h>
   46 
   47 extern int securelevel;         /* system security level (see init(8)) */
   48 
   49 extern int cold;                /* nonzero if we are doing a cold boot */
   50 extern const char *panicstr;    /* panic message */
   51 extern char version[];          /* system version */
   52 extern char copyright[];        /* system copyright */
   53 
   54 extern int nblkdev;             /* number of entries in bdevsw */
   55 extern int nchrdev;             /* number of entries in cdevsw */
   56 extern struct swdevt *swdevt;   /* swap-device information */
   57 extern int nswdev;              /* number of swap devices */
   58 extern int nswap;               /* size of swap space */
   59 
   60 extern int selwait;             /* select timeout address */
   61 
   62 extern u_char curpriority;      /* priority of current process */
   63 
   64 extern int physmem;             /* physical memory */
   65 
   66 extern dev_t dumpdev;           /* dump device */
   67 extern long dumplo;             /* offset into dumpdev */
   68 
   69 extern dev_t rootdev;           /* root device */
   70 extern struct vnode *rootvp;    /* vnode equivalent to above */
   71 
   72 extern dev_t swapdev;           /* swapping device */
   73 extern struct vnode *swapdev_vp;/* vnode equivalent to above */
   74 
   75 extern int boothowto;           /* reboot flags, from console subsystem */
   76 extern int bootverbose;         /* nonzero to print verbose messages */
   77 
   78 /*
   79  * General function declarations.
   80  */
   81 void    Debugger __P((const char *msg));
   82 int     nullop __P((void));
   83 int     eopnotsupp __P((void));
   84 int     einval __P((void));
   85 int     seltrue __P((dev_t dev, int which, struct proc *p));
   86 int     ureadc __P((int, struct uio *));
   87 void    *hashinit __P((int count, int type, u_long *hashmask));
   88 void    *phashinit __P((int count, int type, u_long *nentries));
   89 
   90 void    panic __P((const char *, ...)) __dead2;
   91 void    boot __P((int)) __dead2;
   92 void    cpu_boot __P((int));
   93 void    cpu_rootconf __P((void));
   94 void    cpu_dumpconf __P((void));
   95 void    tablefull __P((const char *));
   96 int     addlog __P((const char *, ...));
   97 int     kvprintf __P((char const *, void (*)(int, void*), void *, int,
   98                       _BSD_VA_LIST_));
   99 void    log __P((int, const char *, ...));
  100 int     printf __P((const char *, ...));
  101 int     sprintf __P((char *buf, const char *, ...));
  102 void    uprintf __P((const char *, ...));
  103 void    vprintf __P((const char *, _BSD_VA_LIST_));
  104 void    ttyprintf __P((struct tty *, const char *, ...));
  105 
  106 void    bcopy __P((const void *from, void *to, size_t len));
  107 void    ovbcopy __P((const void *from, void *to, size_t len));
  108 extern void     (*bzero) __P((void *buf, size_t len));
  109 
  110 void    *memcpy __P((void *to, const void *from, size_t len));
  111 
  112 int     copystr __P((const void *kfaddr, void *kdaddr, size_t len,
  113                 size_t *lencopied));
  114 int     copyinstr __P((const void *udaddr, void *kaddr, size_t len,
  115                 size_t *lencopied));
  116 int     copyin __P((const void *udaddr, void *kaddr, size_t len));
  117 int     copyout __P((const void *kaddr, void *udaddr, size_t len));
  118 
  119 int     fubyte __P((const void *base));
  120 int     fuibyte __P((const void *base));
  121 int     subyte __P((void *base, int byte));
  122 int     suibyte __P((void *base, int byte));
  123 int     fuword __P((const void *base));
  124 int     suword __P((void *base, int word));
  125 int     susword __P((void *base, int word));
  126 
  127 int     hzto __P((struct timeval *tv));
  128 void    realitexpire __P((void *));
  129 
  130 struct clockframe;
  131 void    hardclock __P((struct clockframe *frame));
  132 void    softclock __P((void));
  133 void    statclock __P((struct clockframe *frame));
  134 
  135 void    startprofclock __P((struct proc *));
  136 void    stopprofclock __P((struct proc *));
  137 void    setstatclockrate __P((int hzrate));
  138 
  139 void    hardupdate __P((long));
  140 void    hardpps __P((struct timeval *tvp, long usec));
  141 
  142 #include <sys/libkern.h>
  143 
  144 /* Initialize the world */
  145 extern void consinit(void);
  146 extern void usrinfoinit(void);
  147 extern void cpu_initclocks(void);
  148 extern void vntblinit(void);
  149 extern void nchinit(void);
  150 
  151 /* Finalize the world. */
  152 void    shutdown_nice __P((void));
  153 
  154 /*
  155  * Kernel to clock driver interface.
  156  */
  157 void    inittodr __P((time_t base));
  158 void    resettodr __P((void));
  159 void    startrtclock __P((void));
  160 
  161 /* Timeouts */
  162 typedef void (timeout_t)(void *); /* actual timeout function type */
  163 typedef timeout_t *timeout_func_t; /* a pointer to this type */
  164 
  165 void timeout(timeout_func_t, void *, int);
  166 void untimeout(timeout_func_t, void *);
  167 void    logwakeup __P((void));
  168 
  169 /* Various other callout lists that modules might want to know about */
  170 /* shutdown callout list definitions */
  171 typedef void (*bootlist_fn)(int,void *);
  172 int at_shutdown(bootlist_fn function, void *arg, int);
  173 int rm_at_shutdown(bootlist_fn function, void *arg);
  174 #define SHUTDOWN_PRE_SYNC 0
  175 #define SHUTDOWN_POST_SYNC 1
  176 
  177 /* forking */ /* XXX not yet */
  178 typedef void (*forklist_fn)(struct proc *parent,struct proc *child,int flags);
  179 int at_fork(forklist_fn function);
  180 int rm_at_fork(forklist_fn function);
  181 
  182 /* exiting */
  183 typedef void (*exitlist_fn)(struct proc *procp);
  184 int at_exit(exitlist_fn function);
  185 int rm_at_exit(exitlist_fn function);
  186 
  187 /* Not exactly a callout LIST, but a callout entry..                    */
  188 /* Allow an external module to define a hardware watchdog tickler       */
  189 /* Normally a process would do this, but there are times when the       */
  190 /* kernel needs to be able to hold off the watchdog, when the process   */
  191 /* is not active, e.g. when dumping core. Costs us a whole 4 bytes to   */
  192 /* make this generic. the variable is in kern_shutdown.c */
  193 typedef void (*watchdog_tickle_fn)(void);
  194 extern watchdog_tickle_fn wdog_tickler;
  195 
  196 
  197 /* 
  198  * Common `proc' functions are declared here so that proc.h can be included
  199  * less often.
  200  */
  201 int     tsleep __P((void *chan, int pri, char *wmesg, int timo));
  202 void    wakeup __P((void *chan));
  203 
  204 #endif /* !_SYS_SYSTM_H_ */

Cache object: 9b6e22db703ebf2a995b479fac36d457


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.