/[rtmk]/rtmk/vm-map.h
ViewVC logotype

Diff of /rtmk/vm-map.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by jrydberg, Sun Feb 24 23:09:48 2002 UTC revision 1.4 by jrydberg, Wed Mar 6 00:55:01 2002 UTC
# Line 26  Foundation, Inc., 59 Temple Place - Suit Line 26  Foundation, Inc., 59 Temple Place - Suit
26  #include "queue.h"  #include "queue.h"
27  #include "vm-object.h"  #include "vm-object.h"
28  #include "thread-lock.h"  #include "thread-lock.h"
29    #include "vm-page.h"
30    
31    /* List of pages, used when providing kernel or user application
32       with data.  ???? */
33    struct vm_map_pagelist
34    {
35      struct vm_page **pages;       /* Array of pages.  */
36      unsigned int n_pages;         /* Number of pages in array.  */
37    };
38    
39    struct vm_map_copy
40    {
41      unsigned int type;
42      vm_offset_t offset;
43      vm_size_t size;
44    
45    #define VM_MAP_COPY_OBJECT      0
46    #define VM_MAP_COPY_PAGELIST    1
47    #define VM_MAP_COPY_SUBMAP      2
48    
49      union {
50        struct vm_object *vm_object;
51        struct vm_map *vm_submap;
52        struct vm_map_pagelist *vm_pagelist;
53      } object;
54    };
55    
56  /* Portion of address space pointing to only one vm_object or  /* Portion of address space pointing to only one vm_object or
57     another vm_map.       another vm_map.  
# Line 34  Foundation, Inc., 59 Temple Place - Suit Line 60  Foundation, Inc., 59 Temple Place - Suit
60     have no pager and should be treated as an anonymous region.     have no pager and should be treated as an anonymous region.
61    
62     For anonymous regions we create the object on page fault.  */     For anonymous regions we create the object on page fault.  */
   
 /* ??? make union of object and submap.  */  
   
63  struct vm_map_entry  struct vm_map_entry
64  {  {
65    struct queue_entry link;      /* Link is list of entries.  */    struct queue_entry link;      /* Link is list of entries.  */
# Line 148  extern struct vm_map *vm_map_copyin (str Line 171  extern struct vm_map *vm_map_copyin (str
171                                       vm_offset_t offset, vm_size_t size,                                       vm_offset_t offset, vm_size_t size,
172                                       int deallocate_p);                                       int deallocate_p);
173    
174    /* Copy in region [ADDRESS, ADDRESS+SIZE) if MAP into a page list.
175       Page list is returned in *PLISTP.  If we fail, return error code.  */
176    extern kern_return_t vm_map_copyin_pagelist (struct vm_map *map,
177                                                 vm_offset_t address,
178                                                 vm_size_t size, int dealloc_p,
179                                                 struct vm_map_pagelist **plistp);
180    
181    /* Copy in OBJECT into a map copy object structure.  The copy
182       structure is returned.  NULL is returned if we run out of memory.  */
183    extern struct vm_map_copy *vm_map_copyin_object (struct vm_object *object,
184                                                     vm_offset_t offset,
185                                                     vm_offset_t size);
186    
187    /* Copy out map copy COPY into MAP.  Store resulting addres in
188       *ADDRESSP.  If everthing goes well, COPY is destroyed.  */
189    extern kern_return_t vm_map_copyout (struct vm_map *map,
190                                         struct vm_map_copy *copy,
191                                         vm_offset_t *addressp);
192    
193  #endif /* KERN_VM_MAP_H */  #endif /* KERN_VM_MAP_H */

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26