Linux 2.6.17.7
[linux/fpc-iii.git] / arch / ppc / mm / mem_pieces.h
blobe2b700dc7f18473233d43899c26e2868d53a0f35
1 /*
2 * Copyright (c) 1996 Paul Mackerras <paulus@cs.anu.edu.au>
3 * Changes to accommodate Power Macintoshes.
4 * Cort Dougan <cort@cs.nmt.edu>
5 * Rewrites.
6 * Grant Erickson <grant@lcse.umn.edu>
7 * General rework and split from mm/init.c.
9 * Module name: mem_pieces.h
11 * Description:
12 * Routines and data structures for manipulating and representing
13 * phyiscal memory extents (i.e. address/length pairs).
17 #ifndef __MEM_PIECES_H__
18 #define __MEM_PIECES_H__
20 #include <asm/prom.h>
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
27 /* Type Definitions */
29 #define MEM_PIECES_MAX 32
31 struct mem_pieces {
32 int n_regions;
33 struct reg_property regions[MEM_PIECES_MAX];
36 /* Function Prototypes */
38 extern void *mem_pieces_find(unsigned int size, unsigned int align);
39 extern void mem_pieces_remove(struct mem_pieces *mp, unsigned int start,
40 unsigned int size, int must_exist);
41 extern void mem_pieces_coalesce(struct mem_pieces *mp);
42 extern void mem_pieces_sort(struct mem_pieces *mp);
44 #ifdef __cplusplus
46 #endif
48 #endif /* __MEM_PIECES_H__ */