blob: e46ff68a6e4184923547153af0853d91bef2264e [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 */
9#define IMALLOC_END (VMALLOC_START + EADDR_MASK)
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 */