📄 lmb.h
字号:
#ifndef _LINUX_LMB_H#define _LINUX_LMB_H#ifdef __KERNEL__#include <asm/types.h>/* * Logical memory blocks. * * Copyright (C) 2001 Peter Bergner, IBM Corp. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */#define MAX_LMB_REGIONS 8struct lmb_property { phys_addr_t base; phys_size_t size;};struct lmb_region { unsigned long cnt; phys_size_t size; struct lmb_property region[MAX_LMB_REGIONS+1];};struct lmb { struct lmb_region memory; struct lmb_region reserved;};extern struct lmb lmb;extern void lmb_init(struct lmb *lmb);extern long lmb_add(struct lmb *lmb, phys_addr_t base, phys_size_t size);extern long lmb_reserve(struct lmb *lmb, phys_addr_t base, phys_size_t size);extern phys_addr_t lmb_alloc(struct lmb *lmb, phys_size_t size, ulong align);extern phys_addr_t lmb_alloc_base(struct lmb *lmb, phys_size_t size, ulong align, phys_addr_t max_addr);extern phys_addr_t __lmb_alloc_base(struct lmb *lmb, phys_size_t size, ulong align, phys_addr_t max_addr);extern int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr);extern long lmb_free(struct lmb *lmb, phys_addr_t base, phys_size_t size);extern void lmb_dump_all(struct lmb *lmb);static inline phys_size_tlmb_size_bytes(struct lmb_region *type, unsigned long region_nr){ return type->region[region_nr].size;}#endif /* __KERNEL__ */#endif /* _LINUX_LMB_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -