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/compat/ndis/nbcompat.c

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 /*      $NetBSD: nbcompat.c,v 1.10 2008/01/08 07:59:23 he Exp $ */
    2 
    3 /* nbcompat.c
    4  * Implementations of some FreeBSD functions on NetBSD to make things
    5  * a bit smoother.
    6  */
    7 
    8 #include <sys/cdefs.h>
    9 __KERNEL_RCSID(0, "$NetBSD: nbcompat.c,v 1.10 2008/01/08 07:59:23 he Exp $");
   10 
   11 #include <sys/param.h>
   12 #include <sys/systm.h>
   13 #include <sys/kernel.h>
   14 #include <sys/kthread.h>
   15 #include <sys/proc.h>
   16 #include <sys/wait.h>
   17 #include <sys/unistd.h>
   18 #include <sys/types.h>
   19 #include <sys/errno.h>
   20 #include <sys/lock.h>
   21 #include <sys/bus.h>
   22 
   23 #include <machine/stdarg.h>
   24 
   25 #include "nbcompat.h"
   26 
   27 /* note: this is also defined in ntoskrnl_var.h, but I didn't want to include
   28  * the whole file here
   29  */
   30 #define NDIS_KSTACK_PAGES       8
   31 
   32 struct ndis_resource{
   33    bus_space_handle_t res_handle;
   34    bus_space_tag_t    res_tag;
   35    bus_addr_t         res_base;
   36    bus_size_t         res_size;
   37 };
   38 
   39 int
   40 bus_release_resource(device_t dev, int type, int rid,
   41     struct ndis_resource *r)
   42 {
   43         switch(type) {
   44         case SYS_RES_IOPORT:
   45                 bus_space_unmap(r->res_tag, r->res_handle, r->res_size);
   46                 break;
   47         case SYS_RES_MEMORY:
   48                 bus_space_unmap(r->res_tag, r->res_handle, r->res_size);
   49                 break;
   50         default:
   51                 printf("error: bus_release_resource()");
   52         }
   53         
   54         return 0;
   55 }
   56 
   57 void
   58 mtx_lock(struct mtx *mutex)
   59 {
   60         /* XXXSMP needs doing
   61         */
   62         //mutex_enter(mutex);
   63 }
   64 
   65 void
   66 mtx_unlock(struct mtx *mutex)
   67 {
   68         //mutex_exit(mutex);
   69 }
   70 
   71 int
   72 device_is_attached(device_t dev)
   73 {
   74         /* Sure, it's attached? */
   75         return TRUE;
   76 }
   77 
   78 /* I took this from sys/kern/kern_kthread.c (in the NetBSD source tree).
   79  * The only difference is the kernel stack size
   80  */
   81 
   82 /*
   83  * Fork a kernel thread.  Any process can request this to be done.
   84  * The VM space and limits, etc. will be shared with proc0.
   85  */
   86 int
   87 ndis_kthread_create(void (*func)(void *), void *arg,
   88   struct proc **newpp, void *stack, size_t stacksize, const char *name)
   89 {
   90   struct lwp *l;
   91   int error;
   92   
   93   error = kthread_create(PRI_NONE, 0, NULL, func, arg, &l, "%s", name);
   94   if (__predict_false(error != 0))
   95     return (error);
   96   
   97   /* All done! */
   98   if (newpp != NULL)
   99     *newpp = l->l_proc;
  100   return (0);
  101 }

Cache object: 656da9c8cb9ecf3c6fd94df8a47db3ea


[ 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.