David Gibson | 1f8d419 | 2005-05-05 16:15:13 -0700 | [diff] [blame] | 1 | #ifndef _PPC64_IMALLOC_H |
| 2 | #define _PPC64_IMALLOC_H |
| 3 | |
| 4 | /* |
| 5 | * Define the address range of the imalloc VM area. |
| 6 | */ |
David Gibson | 20cee16 | 2005-06-21 17:15:31 -0700 | [diff] [blame] | 7 | #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 Gibson | 1f8d419 | 2005-05-05 16:15:13 -0700 | [diff] [blame] | 10 | |
| 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 | |
| 19 | extern struct vm_struct * im_get_free_area(unsigned long size); |
| 20 | extern struct vm_struct * im_get_area(unsigned long v_addr, unsigned long size, |
David Gibson | 20cee16 | 2005-06-21 17:15:31 -0700 | [diff] [blame] | 21 | int region_type); |
| 22 | extern void im_free(void *addr); |
| 23 | |
| 24 | extern unsigned long ioremap_bot; |
David Gibson | 1f8d419 | 2005-05-05 16:15:13 -0700 | [diff] [blame] | 25 | |
| 26 | #endif /* _PPC64_IMALLOC_H */ |