Rev 854 | Rev 864 | 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 | |||
859 | serge | 32 | # define KA2PA(x) (((addr_t) (x)) - OS_BASE) |
33 | |||
34 | |||
854 | serge | 35 | #define FRAME_WIDTH 12 |
36 | |||
37 | |||
38 | |||
39 | |||
40 | { |
||
41 | if (!size) |
||
42 | return 0; |
||
43 | return (count_t) ((size - 1) >> FRAME_WIDTH) + 1; |
||
44 | } |
||
45 | |||
46 | |||
47 | { |
||
48 | return (addr_t) (frame << FRAME_WIDTH); |
||
49 | } |
||
50 | |||
51 | |||
52 | { |
||
53 | return (pfn_t) (addr >> FRAME_WIDTH); |
||
54 | }; |
||
55 | |||
56 | |||
57 | |||
58 | |||
859 | serge | 59 | void __fastcall core_free(addr_t frame); |
60 | |||
854 | serge | 61 | |
62 | pfn_t __stdcall alloc_pages(count_t count) __asm__ ("_alloc_pages") __attribute__ ((deprecated)); |
||
63 | |||
64 | |||
65 | |||
859 | serge | 66 | |
67 | void* __fastcall frame_get_parent(pfn_t pfn);><>>>>>>>>>>> |
||
68 |