vmalloc.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
- #ifndef __LINUX_VMALLOC_H
- #define __LINUX_VMALLOC_H
- #include <linux/sched.h>
- #include <linux/mm.h>
- #include <linux/spinlock.h>
- #include <asm/pgtable.h>
- /* bits in vm_struct->flags */
- #define VM_IOREMAP 0x00000001 /* ioremap() and friends */
- #define VM_ALLOC 0x00000002 /* vmalloc() */
- struct vm_struct {
- unsigned long flags;
- void * addr;
- unsigned long size;
- struct vm_struct * next;
- };
- extern struct vm_struct * get_vm_area (unsigned long size, unsigned long flags);
- extern void vfree(void * addr);
- extern void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot);
- extern long vread(char *buf, char *addr, unsigned long count);
- extern void vmfree_area_pages(unsigned long address, unsigned long size);
- extern int vmalloc_area_pages(unsigned long address, unsigned long size,
- int gfp_mask, pgprot_t prot);
- /*
- * Allocate any pages
- */
-
- static inline void * vmalloc (unsigned long size)
- {
- return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL);
- }
- /*
- * Allocate ISA addressable pages for broke crap
- */
- static inline void * vmalloc_dma (unsigned long size)
- {
- return __vmalloc(size, GFP_KERNEL|GFP_DMA, PAGE_KERNEL);
- }
- /*
- * vmalloc 32bit PA addressable pages - eg for PCI 32bit devices
- */
-
- static inline void * vmalloc_32(unsigned long size)
- {
- return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL);
- }
- /*
- * vmlist_lock is a read-write spinlock that protects vmlist
- * Used in mm/vmalloc.c (get_vm_area() and vfree()) and fs/proc/kcore.c.
- */
- extern rwlock_t vmlist_lock;
- extern struct vm_struct * vmlist;
- #endif