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/vm/vm_kern.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  * Mach Operating System
    3  * Copyright (c) 1993,1991,1990,1989,1988,1987 Carnegie Mellon University
    4  * All Rights Reserved.
    5  * 
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  * 
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  * 
   16  * Carnegie Mellon requests users of this software to return to
   17  * 
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  * 
   23  * any improvements or extensions that they make and grant Carnegie Mellon
   24  * the rights to redistribute these changes.
   25  */
   26 /*
   27  * HISTORY
   28  * $Log:        vm_kern.h,v $
   29  * Revision 2.11  93/11/17  18:54:40  dbg
   30  *      Conditionalized projected buffer support under NET_ATM.
   31  *      [93/09/10            dbg]
   32  *      Added ANSI function prototypes.
   33  *      [93/06/16            dbg]
   34  * 
   35  * Revision 2.10  93/08/10  15:12:46  mrt
   36  *      Included support for projected buffers.
   37  *      [93/02/16  09:30:12  jcb]
   38  * 
   39  * Revision 2.9  91/08/28  11:18:05  jsb
   40  *      Delete io_wire, io_unwire.
   41  *      [91/08/06  17:18:36  dlb]
   42  * 
   43  *      Add declarations for kmem_io_map_{copyout,deallocate}.
   44  *      [91/08/05  17:46:55  dlb]
   45  * 
   46  * Revision 2.8  91/05/18  14:40:39  rpd
   47  *      Added kmem_alloc_aligned.
   48  *      [91/05/02            rpd]
   49  * 
   50  * Revision 2.7  91/05/14  17:49:27  mrt
   51  *      Correcting copyright
   52  * 
   53  * Revision 2.6  91/03/16  15:05:31  rpd
   54  *      Added kmem_realloc.  Changed kmem_alloc and friends
   55  *      to return a kern_return_t.
   56  *      [91/03/03            rpd]
   57  * 
   58  * Revision 2.5  91/02/05  17:58:31  mrt
   59  *      Changed to new Mach copyright
   60  *      [91/02/01  16:32:28  mrt]
   61  * 
   62  * Revision 2.4  90/06/02  15:10:51  rpd
   63  *      Added ipc_kernel_map.
   64  *      [90/03/26  23:13:05  rpd]
   65  * 
   66  * Revision 2.3  90/02/22  20:05:46  dbg
   67  *      Remove vm_move(), kmem_alloc_wait(), kmem_free_wakeup().
   68  *      [90/01/25            dbg]
   69  * 
   70  * Revision 2.2  90/01/11  11:47:53  dbg
   71  *      Remove kmem_mb_alloc, mb_map.  Add io_wire and io_unwire.
   72  *      [89/12/11            dbg]
   73  * 
   74  *      Changes for MACH_KERNEL:
   75  *      . Added kmem_alloc_wired.
   76  *      . Removed non-MACH header files, user_pt_map, vm_kern_zero_page.
   77  *      [89/04/28            dbg]
   78  * 
   79  * Revision 2.1  89/08/03  16:45:13  rwd
   80  * Created.
   81  * 
   82  * Revision 2.8  89/04/18  21:25:51  mwyoung
   83  *      No relevant history.
   84  *      [89/04/18            mwyoung]
   85  * 
   86  */
   87 /*
   88  *      File:   vm/vm_kern.h
   89  *      Author: Avadis Tevanian, Jr., Michael Wayne Young
   90  *      Date:   1985
   91  *
   92  *      Kernel memory management definitions.
   93  */
   94 
   95 #ifndef _VM_VM_KERN_H_
   96 #define _VM_VM_KERN_H_
   97 
   98 #include <net_atm.h>
   99 
  100 #include <mach/kern_return.h>
  101 #include <vm/vm_map.h>
  102 
  103 #if     NET_ATM
  104 extern kern_return_t    projected_buffer_allocate(
  105         vm_map_t map,
  106         vm_size_t size,
  107         int persistence,
  108         vm_offset_t *kernel_p,
  109         vm_offset_t *user_p,
  110         vm_prot_t protection,
  111         vm_inherit_t inheritance); /*Currently only VM_INHERIT_NONE supported*/
  112 extern kern_return_t    projected_buffer_deallocate(
  113      vm_map_t map,
  114      vm_offset_t start,
  115      vm_offset_t end);
  116 extern kern_return_t    projected_buffer_map(
  117         vm_map_t map,
  118         vm_offset_t kernel_addr,
  119         vm_size_t size,
  120         vm_offset_t *user_p,
  121         vm_prot_t protection,
  122         vm_inherit_t inheritance); /*Currently only VM_INHERIT_NONE supported*/
  123 extern kern_return_t    projected_buffer_collect(
  124         vm_map_t map);
  125 #endif  /* NET_ATM */
  126 
  127 extern void             kmem_init(
  128                 vm_offset_t     start,
  129                 vm_offset_t     end);
  130 
  131 extern kern_return_t    kmem_alloc(
  132                 vm_map_t        map,
  133                 vm_offset_t     *addrp,
  134                 vm_size_t       size);
  135 extern kern_return_t    kmem_alloc_pageable(
  136                 vm_map_t        map,
  137                 vm_offset_t     *addrp,
  138                 vm_size_t       size);
  139 extern kern_return_t    kmem_alloc_wired(
  140                 vm_map_t        map,
  141                 vm_offset_t     *addrp,
  142                 vm_size_t       size);
  143 extern kern_return_t    kmem_alloc_aligned(
  144                 vm_map_t        map,
  145                 vm_offset_t     *addrp,
  146                 vm_size_t       size);
  147 extern kern_return_t    kmem_realloc(
  148                 vm_map_t        map,
  149                 vm_offset_t     oldaddr,
  150                 vm_size_t       oldsize,
  151                 vm_offset_t     *newaddrp,
  152                 vm_size_t       newsize);
  153 extern void             kmem_free(
  154                 vm_map_t        map,
  155                 vm_offset_t     addr,
  156                 vm_size_t       size);
  157 
  158 extern vm_map_t         kmem_suballoc(
  159                 vm_map_t        parent,
  160                 vm_offset_t     *min,
  161                 vm_offset_t     *max,
  162                 vm_size_t       size,
  163                 boolean_t       pageable);
  164 
  165 extern kern_return_t    kmem_io_map_copyout(
  166                 vm_map_t        map,
  167                 vm_offset_t     *addr,
  168                 vm_offset_t     *alloc_addr,
  169                 vm_size_t       *alloc_size,
  170                 vm_map_copy_t   copy,
  171                 vm_size_t       min_size);
  172 
  173 extern void             kmem_io_map_deallocate(
  174                 vm_map_t        map,
  175                 vm_offset_t     addr,
  176                 vm_size_t       size);
  177 
  178 extern vm_map_t kernel_map;
  179 extern vm_map_t kernel_pageable_map;
  180 extern vm_map_t ipc_kernel_map;
  181 
  182 #endif  /* _VM_VM_KERN_H_ */

Cache object: e105fe5db27da6de3ed47c929059156b


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