Rev 859 | Rev 888 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
854 | serge | 1 | |
2 | { |
||
3 | link_t buddy_link; /**< link to the next free block inside one order */ |
||
4 | count_t refcount; /**< tracking of shared frames */ |
||
5 | u32_t buddy_order; /**< buddy system block order */ |
||
6 | void *parent; /**< If allocated by slab, this points there */ |
||
7 | } frame_t; |
||
8 | |||
9 | |||
10 | SPINLOCK_DECLARE(lock); /**< this lock protects everything below */ |
||
11 | pfn_t base; /**< frame_no of the first frame in the frames array */ |
||
12 | count_t count; /**< Size of zone */ |
||
13 | |||
14 | |||
15 | count_t free_count; /**< number of free frame_t structures */ |
||
16 | count_t busy_count; /**< number of busy frame_t structures */ |
||
17 | |||
18 | |||
19 | link_t order[21]; |
||
20 | |||
21 | |||
22 | } zone_t; |
||
23 | |||
24 | |||
859 | serge | 25 | { |
26 | count_t count; |
||
27 | addr_t frames[18]; |
||
28 | }phismem_t; |
||
29 | |||
854 | serge | 30 | |
31 | |||
864 | serge | 32 | |
859 | serge | 33 | |
864 | serge | 34 | |
854 | serge | 35 | #define FRAME_WIDTH 12 |
36 | |||
37 | |||
38 | |||
39 | |||
864 | serge | 40 | |
41 | # define KA2PA(x) (((addr_t) (x)) - OS_BASE) |
||
42 | |||
43 | |||
854 | serge | 44 | { |
45 | if (!size) |
||
46 | return 0; |
||
47 | return (count_t) ((size - 1) >> FRAME_WIDTH) + 1; |
||
48 | } |
||
49 | |||
50 | |||
51 | { |
||
52 | return (addr_t) (frame << FRAME_WIDTH); |
||
53 | } |
||
54 | |||
55 | |||
56 | { |
||
57 | return (pfn_t) (addr >> FRAME_WIDTH); |
||
58 | }; |
||
59 | |||
60 | |||
61 | |||
62 | |||
859 | serge | 63 | void __fastcall core_free(addr_t frame); |
64 | |||
854 | serge | 65 | |
66 | pfn_t __stdcall alloc_pages(count_t count) __asm__ ("_alloc_pages") __attribute__ ((deprecated)); |
||
67 | |||
68 | |||
69 | |||
859 | serge | 70 | |
71 | void* __fastcall frame_get_parent(pfn_t pfn); |
||
72 | |||
864 | serge | 73 | |
74 |