Augment loader.conf's manual page to describe hw.usb.hack_defer_exploration
[dragonfly.git] / sys / sys / systm.h
index f33f366..f9501fb 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)systm.h     8.7 (Berkeley) 3/29/95
  * $FreeBSD: src/sys/sys/systm.h,v 1.111.2.18 2002/12/17 18:04:02 sam Exp $
- * $DragonFly: src/sys/sys/systm.h,v 1.63 2007/01/12 03:05:49 dillon Exp $
+ * $DragonFly: src/sys/sys/systm.h,v 1.80 2008/07/23 17:22:33 dillon Exp $
  */
 
 #ifndef _SYS_SYSTM_H_
 #include <sys/callout.h>
 
 extern int securelevel;                /* system security level (see init(8)) */
+extern int kernel_mem_readonly;        /* disable writes to kernel memory */
 
 extern int cold;               /* nonzero if we are doing a cold boot */
+extern int tsleep_now_works;   /* tsleep won't just return any more */
 extern const char *panicstr;   /* panic message */
 extern int dumping;            /* system is dumping */
 extern int safepri;            /* safe ipl when cold or panicing */
@@ -73,7 +75,8 @@ extern u_char curpriority;    /* priority of current process */
 extern int physmem;            /* physical memory */
 
 extern cdev_t dumpdev;         /* dump device */
-extern long dumplo;            /* offset into dumpdev */
+extern int dumplo;             /* OBSOLETE */
+extern u_int64_t dumplo64;     /* block number into dumpdev, start of dump */
 
 extern cdev_t rootdev;         /* root device */
 extern cdev_t rootdevs[2];     /* possible root devices */
@@ -88,6 +91,8 @@ extern int ncpus;             /* total number of cpus (real, hyper, virtual)*/
 extern int ncpus2;             /* ncpus rounded down to power of 2 */
 extern int ncpus2_shift;       /* log base 2 of ncpus2 */
 extern int ncpus2_mask;                /* ncpus2 - 1 */
+extern int ncpus_fit;          /* round up to a power of 2 */
+extern int ncpus_fit_mask;     /* ncpus_fit - 1 */
 extern int clocks_running;     /* timing/timeout subsystem is operational */
 
 /* XXX TGEN these don't belong here, they're MD on i386/amd64 */
@@ -115,6 +120,7 @@ extern vm_paddr_t Maxmem;   /* Highest physical memory address in system */
 
 struct intrframe;
 struct spinlock;
+struct lwkt_serialize;
 struct malloc_type;
 struct proc;
 struct xwait;
@@ -127,6 +133,7 @@ struct trapframe;
 struct user;
 struct vmspace;
 struct savetls;
+struct krate;
 
 void   Debugger (const char *msg);
 void   backtrace(void);
@@ -141,6 +148,8 @@ void        *phashinit (int count, struct malloc_type *type, u_long *nentries);
 
 int    cpu_sanitize_frame (struct trapframe *);
 int    cpu_sanitize_tls (struct savetls *);
+void   cpu_mplock_contested(void);
+void   cpu_spinlock_contested(void);
 void   cpu_halt (void);
 void   cpu_reset (void);
 void   cpu_boot (int);
@@ -156,6 +165,7 @@ int is_physical_memory (vm_offset_t addr);
 
 extern uint32_t crc32_tab[];
 uint32_t crc32(const void *buf, size_t size);
+uint32_t crc32_ext(const void *buf, size_t size, uint32_t ocrc);
 void   init_param1 (void);
 void   init_param2 (int physpages);
 void   tablefull (const char *);
@@ -165,6 +175,8 @@ int log (int, const char *, ...) __printflike(2, 3);
 void   logwakeup (void);
 void   log_console (struct uio *);
 int    kprintf (const char *, ...) __printflike(1, 2);
+int    kprintf0(const char *, ...) __printflike(1, 2);
+void   krateprintf (struct krate *, const char *, ...) __printflike(2, 3);
 int    ksnprintf (char *, size_t, const char *, ...) __printflike(3, 4);
 int    ksprintf (char *buf, const char *, ...) __printflike(2, 3);
 int    uprintf (const char *, ...) __printflike(1, 2);
@@ -212,6 +224,7 @@ int susword (void *base, int word);
 
 void   realitexpire (void *);
 void   DELAY(int usec);
+void   DRIVERSLEEP(int usec);
 
 void   startprofclock (struct proc *);
 void   stopprofclock (struct proc *);
@@ -224,11 +237,17 @@ void      setstatclockrate (int hzrate);
 void   cons_lock(void); 
 void   cons_unlock(void);
 
+/*
+ * Kernel environment support functions and sundry.
+ */
 char   *kgetenv (const char *name);
-#define        testenv kgetenv
-#define        freeenv(p)
+int    ksetenv(const char *name, const char *value);
+int    kunsetenv(const char *name);
+void   kfreeenv(char *env);
+int    ktestenv(const char *name);
 int    kgetenv_int (const char *name, int *data);
 int    kgetenv_string (const char *name, char *data, int size);
+int    kgetenv_ulong(const char *name, unsigned long *data);
 int    kgetenv_quad (const char *name, quad_t *data);
 extern char *kern_envp;
 
@@ -240,10 +259,8 @@ void       adjust_timeout_calltodo (struct timeval *time_change);
 
 /* Initialize the world */
 void   mi_startup (void);
-void   consinit (void);
-void   cpu_initclocks (void);
+void   cpu_initclocks (void *arg __unused);
 void   nchinit (void);
-void   usrinfoinit (void);
 
 /* Finalize the world. */
 void   shutdown_nice (int);
@@ -257,15 +274,6 @@ void       startrtclock (void);
 
 /* Timeouts */
 typedef void timeout_t (void *);       /* timeout function type */
-#define CALLOUT_HANDLE_INITIALIZER(handle)     \
-       { NULL }
-
-#if 0
-/* OBSOLETE INTERFACE */
-void   callout_handle_init (struct callout_handle *);
-struct callout_handle timeout (timeout_t *, void *, int);
-void   untimeout (timeout_t *, void *, struct callout_handle);
-#endif
 
 /* Interrupt management */
 
@@ -273,7 +281,7 @@ void        untimeout (timeout_t *, void *, struct callout_handle);
  * For the alpha arch, some of these functions are static __inline, and
  * the others should be.
  */
-#ifdef __i386__
+#if defined(__i386__) || defined(__amd64__)
 void           setdelayed (void);
 void           setsoftcambio (void);
 void           setsoftcamnet (void);
@@ -321,8 +329,11 @@ extern watchdog_tickle_fn  wdog_tickler;
  */
 int    tsleep (void *, int, const char *, int);
 int    msleep (void *, struct spinlock *, int, const char *, int);
+int    serialize_sleep(void *, struct lwkt_serialize *, int,
+                       const char *, int);
 void   tsleep_interlock (void *chan);
-void   tstop (struct proc *);
+int    lwkt_sleep (const char *, int);
+void   tstop (void);
 void   wakeup (void *chan);
 void   wakeup_one (void *chan);
 void   wakeup_mycpu (void *chan);