Fix recursive lock in free_uid()/free_user_ns()
[safe/jmp/linux-2.6] / include / linux / lmb.h
index 8b93f63..c46c895 100644 (file)
 #define MAX_LMB_REGIONS 128
 
 struct lmb_property {
-       unsigned long base;
-       unsigned long size;
+       u64 base;
+       u64 size;
 };
 
 struct lmb_region {
        unsigned long cnt;
-       unsigned long size;
+       u64 size;
        struct lmb_property region[MAX_LMB_REGIONS+1];
 };
 
 struct lmb {
        unsigned long debug;
-       unsigned long rmo_size;
+       u64 rmo_size;
        struct lmb_region memory;
        struct lmb_region reserved;
 };
@@ -40,36 +40,40 @@ extern struct lmb lmb;
 
 extern void __init lmb_init(void);
 extern void __init lmb_analyze(void);
-extern long __init lmb_add(unsigned long base, unsigned long size);
-extern long __init lmb_reserve(unsigned long base, unsigned long size);
-extern unsigned long __init lmb_alloc(unsigned long size, unsigned long align);
-extern unsigned long __init lmb_alloc_base(unsigned long size,
-               unsigned long align, unsigned long max_addr);
-extern unsigned long __init __lmb_alloc_base(unsigned long size,
-               unsigned long align, unsigned long max_addr);
-extern unsigned long __init lmb_phys_mem_size(void);
-extern unsigned long __init lmb_end_of_DRAM(void);
-extern void __init lmb_enforce_memory_limit(unsigned long memory_limit);
-extern int __init lmb_is_reserved(unsigned long addr);
+extern long lmb_add(u64 base, u64 size);
+extern long lmb_remove(u64 base, u64 size);
+extern long __init lmb_reserve(u64 base, u64 size);
+extern u64 __init lmb_alloc_nid(u64 size, u64 align, int nid,
+                               u64 (*nid_range)(u64, u64, int *));
+extern u64 __init lmb_alloc(u64 size, u64 align);
+extern u64 __init lmb_alloc_base(u64 size,
+               u64, u64 max_addr);
+extern u64 __init __lmb_alloc_base(u64 size,
+               u64 align, u64 max_addr);
+extern u64 __init lmb_phys_mem_size(void);
+extern u64 __init lmb_end_of_DRAM(void);
+extern void __init lmb_enforce_memory_limit(u64 memory_limit);
+extern int __init lmb_is_reserved(u64 addr);
+extern int lmb_find(struct lmb_property *res);
 
 extern void lmb_dump_all(void);
 
-static inline unsigned long
+static inline u64
 lmb_size_bytes(struct lmb_region *type, unsigned long region_nr)
 {
        return type->region[region_nr].size;
 }
-static inline unsigned long
+static inline u64
 lmb_size_pages(struct lmb_region *type, unsigned long region_nr)
 {
        return lmb_size_bytes(type, region_nr) >> PAGE_SHIFT;
 }
-static inline unsigned long
+static inline u64
 lmb_start_pfn(struct lmb_region *type, unsigned long region_nr)
 {
        return type->region[region_nr].base >> PAGE_SHIFT;
 }
-static inline unsigned long
+static inline u64
 lmb_end_pfn(struct lmb_region *type, unsigned long region_nr)
 {
        return lmb_start_pfn(type, region_nr) +