vmalloc.h

来自「ARM Linux Tool 各种代码包括MTD」· C头文件 代码 · 共 80 行

H
80
字号
#ifndef __LINUX_VMALLOC_H#define __LINUX_VMALLOC_H#include <linux/sched.h>#include <linux/mm.h>#include <linux/spinlock.h>#include <linux/highmem.h>	/* several arch define VMALLOC_END via PKMAP_BASE */#include <asm/pgtable.h>#ifndef NO_MM/* 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;#else /* NO_MM */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);#define vmalloc(s)		__vmalloc(s, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL)#define vmalloc_dma(s)	__vmalloc(s, GFP_KERNEL|GFP_DMA, PAGE_KERNEL)#define vmalloc_32(s)	__vmalloc(s, GFP_KERNEL, PAGE_KERNEL)#endif /* NO_MM */#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?