vmalloc.h
来自「此工具是arm-linux-GCC交叉编译工具(cross-3.4.4)」· C头文件 代码 · 共 64 行
H
64 行
#ifndef _LINUX_VMALLOC_H#define _LINUX_VMALLOC_H#include <linux/spinlock.h>#include <asm/page.h> /* pgprot_t *//* bits in vm_struct->flags */#define VM_IOREMAP 0x00000001 /* ioremap() and friends */#define VM_ALLOC 0x00000002 /* vmalloc() */#define VM_MAP 0x00000004 /* vmap()ed pages *//* bits [20..32] reserved for arch specific ioremap internals *//* * Maximum alignment for ioremap() regions. * Can be overriden by arch-specific value. */#ifndef IOREMAP_MAX_ORDER#define IOREMAP_MAX_ORDER (7 + PAGE_SHIFT) /* 128 pages */#endifstruct vm_struct { void *addr; unsigned long size; unsigned long flags; struct page **pages; unsigned int nr_pages; unsigned long phys_addr; struct vm_struct *next;};/* * Highlevel APIs for driver use */extern void *vmalloc(unsigned long size);extern void *vmalloc_exec(unsigned long size);extern void *vmalloc_32(unsigned long size);extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot);extern void *__vmalloc_area(struct vm_struct *area, gfp_t gfp_mask, pgprot_t prot);extern void vfree(void *addr);extern void *vmap(struct page **pages, unsigned int count, unsigned long flags, pgprot_t prot);extern void vunmap(void *addr); /* * Lowlevel-APIs (not for driver use!) */extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags);extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags, unsigned long start, unsigned long end);extern struct vm_struct *remove_vm_area(void *addr);extern struct vm_struct *__remove_vm_area(void *addr);extern int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages);extern void unmap_vm_area(struct vm_struct *area);/* * Internals. Dont't use.. */extern rwlock_t vmlist_lock;extern struct vm_struct *vmlist;#endif /* _LINUX_VMALLOC_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?