the-freebsd-kernel.h revision c9c40e4aea0cae32719061bfb6968409aa22d460
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync/* $Id$ */
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync/** @file
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * IPRT - Ring-0 Driver, The FreeBSD Kernel Headers.
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync */
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync/*
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * Copyright (c) 2007 knut st. osmundsen <bird-src-spam@anduin.net>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * Permission is hereby granted, free of charge, to any person
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * obtaining a copy of this software and associated documentation
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * files (the "Software"), to deal in the Software without
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * restriction, including without limitation the rights to use,
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * copy, modify, merge, publish, distribute, sublicense, and/or sell
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * copies of the Software, and to permit persons to whom the
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * Software is furnished to do so, subject to the following
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * conditions:
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * The above copyright notice and this permission notice shall be
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * included in all copies or substantial portions of the Software.
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
d87ec738bd7d30635ddd129a1beb7eadb6658aa9vboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync * OTHER DEALINGS IN THE SOFTWARE.
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync */
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#ifndef ___the_freebsd_kernel_h
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#define ___the_freebsd_kernel_h
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync
d87ec738bd7d30635ddd129a1beb7eadb6658aa9vboxsync#include <iprt/types.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync/* Deal with conflicts first. */
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/param.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#undef PVM
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/bus.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/types.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/errno.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/kernel.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/uio.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/libkern.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/systm.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/malloc.h>
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#include <sys/pcpu.h>
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync#include <sys/proc.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/limits.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/unistd.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/kthread.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/lock.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/mutex.h>
d87ec738bd7d30635ddd129a1beb7eadb6658aa9vboxsync#include <sys/sched.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/callout.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/cpu.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/smp.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/sleepqueue.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <sys/sx.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <vm/vm.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <vm/pmap.h> /* for vtophys */
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <vm/vm_map.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <vm/vm_object.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <vm/vm_kern.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include <vm/vm_param.h> /* KERN_SUCCESS ++ */
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync#include <vm/vm_page.h>
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync#include <sys/resourcevar.h>
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync#include <machine/cpu.h>
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync/*#ifdef __cplusplus
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# error "This header doesn't work for C++ code. Sorry, typical kernel crap."
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#endif*/
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
d87ec738bd7d30635ddd129a1beb7eadb6658aa9vboxsync#ifdef __FreeBSD_version >= 800026
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt, 0)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt, 0)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt, 0)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt, 0)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#elif
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_TIMEDWAIT(EventInt) sleepq_timedwait(EventInt)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_TIMEDWAIT_SIG(EventInt) sleepq_timedwait_sig(EventInt)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_WAIT(EventInt) sleepq_wait(EventInt)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# define SLEEPQ_WAIT_SIG(EventInt) sleepq_wait_sig(EventInt)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#endif
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync#endif
4d878e2d51fdc1fc9911161eee65eaf74ed48400vboxsync