linux/include/linux/vmalloc.h
<<
>>
Prefs
   1#ifndef _LINUX_VMALLOC_H
   2#define _LINUX_VMALLOC_H
   3
   4#include <linux/spinlock.h>
   5#include <asm/page.h>           /* pgprot_t */
   6
   7/* bits in vm_struct->flags */
   8#define VM_IOREMAP      0x00000001      /* ioremap() and friends */
   9#define VM_ALLOC        0x00000002      /* vmalloc() */
  10#define VM_MAP          0x00000004      /* vmap()ed pages */
  11/* bits [20..32] reserved for arch specific ioremap internals */
  12
  13struct vm_struct {
  14        void                    *addr;
  15        unsigned long           size;
  16        unsigned long           flags;
  17        struct page             **pages;
  18        unsigned int            nr_pages;
  19        unsigned long           phys_addr;
  20        struct vm_struct        *next;
  21};
  22
  23/*
  24 *      Highlevel APIs for driver use
  25 */
  26extern void *vmalloc(unsigned long size);
  27extern void *vmalloc_exec(unsigned long size);
  28extern void *vmalloc_32(unsigned long size);
  29extern void *__vmalloc(unsigned long size, int gfp_mask, pgprot_t prot);
  30extern void vfree(void *addr);
  31
  32extern void *vmap(struct page **pages, unsigned int count,
  33                        unsigned long flags, pgprot_t prot);
  34extern void vunmap(void *addr);
  35 
  36/*
  37 *      Lowlevel-APIs (not for driver use!)
  38 */
  39extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags);
  40extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags,
  41                                        unsigned long start, unsigned long end);
  42extern struct vm_struct *remove_vm_area(void *addr);
  43extern int map_vm_area(struct vm_struct *area, pgprot_t prot,
  44                        struct page ***pages);
  45extern void unmap_vm_area(struct vm_struct *area);
  46
  47/*
  48 *      Internals.  Dont't use..
  49 */
  50extern rwlock_t vmlist_lock;
  51extern struct vm_struct *vmlist;
  52
  53#endif /* _LINUX_VMALLOC_H */
  54
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.