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 + -
显示快捷键?