blob: 42adf7033a8106219f74c8678431a1d9037736cd [file] [log] [blame]
David Gibson1f8d4192005-05-05 16:15:13 -07001#ifndef _PPC64_IMALLOC_H
2#define _PPC64_IMALLOC_H
3
4/*
5 * Define the address range of the imalloc VM area.
6 */
David Gibson20cee162005-06-21 17:15:31 -07007#define PHBS_IO_BASE VMALLOC_END
8#define IMALLOC_BASE (PHBS_IO_BASE + 0x80000000ul) /* Reserve 2 gigs for PHBs */
David Gibsone28f7fa2005-08-05 19:39:06 +10009#define IMALLOC_END (VMALLOC_START + PGTABLE_RANGE)
David Gibson1f8d4192005-05-05 16:15:13 -070010
11
12/* imalloc region types */
13#define IM_REGION_UNUSED 0x1
14#define IM_REGION_SUBSET 0x2
15#define IM_REGION_EXISTS 0x4
16#define IM_REGION_OVERLAP 0x8
17#define IM_REGION_SUPERSET 0x10
18
19extern struct vm_struct * im_get_free_area(unsigned long size);
20extern struct vm_struct * im_get_area(unsigned long v_addr, unsigned long size,
David Gibson20cee162005-06-21 17:15:31 -070021 int region_type);
22extern void im_free(void *addr);
23
24extern unsigned long ioremap_bot;
David Gibson1f8d4192005-05-05 16:15:13 -070025
26#endif /* _PPC64_IMALLOC_H */