Rev 889 | Rev 892 | 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 | |||
889 | serge | 25 | |
859 | serge | 26 | { |
27 | link_t link; |
||
889 | serge | 28 | link_t adj; |
29 | addr_t base; |
||
30 | size_t size; |
||
31 | void *parent; |
||
32 | u32_t state; |
||
33 | }md_t; |
||
34 | |||
854 | serge | 35 | |
36 | |||
864 | serge | 37 | #define PG_WRITE 2 |
889 | serge | 38 | #define PG_USER 4 |
39 | |||
859 | serge | 40 | |
889 | serge | 41 | #define PG_UW 7 |
42 | |||
864 | serge | 43 | |
889 | serge | 44 | |
45 | |||
854 | serge | 46 | #define FRAME_WIDTH 12 |
47 | |||
48 | |||
49 | |||
50 | |||
864 | serge | 51 | |
52 | # define KA2PA(x) (((addr_t) (x)) - OS_BASE) |
||
53 | |||
54 | |||
854 | serge | 55 | { |
56 | if (!size) |
||
57 | return 0; |
||
58 | return (count_t) ((size - 1) >> FRAME_WIDTH) + 1; |
||
59 | } |
||
60 | |||
61 | |||
62 | { |
||
63 | return (addr_t) (frame << FRAME_WIDTH); |
||
64 | } |
||
65 | |||
66 | |||
67 | { |
||
68 | return (pfn_t) (addr >> FRAME_WIDTH); |
||
69 | }; |
||
70 | |||
71 | |||
72 | |||
73 | |||
889 | serge | 74 | void __fastcall frame_set_parent(pfn_t pfn, void *data); |
75 | |||
76 | |||
77 | |||
78 | |||
79 | |||
859 | serge | 80 | void __fastcall core_free(addr_t frame); |
889 | serge | 81 | |
854 | serge | 82 | |
83 | |||
84 | |||
859 | serge | 85 | |
890 | serge | 86 | |
864 | serge | 87 | |
890 | serge | 88 | |
89 | |||
90 | |||
91 | void __fastcall __export mem_free(void *mem) asm ("MemFree");><>>>>>>>>>>> |
||
92 |