Changes in kernel/generic/include/mm/frame.h [98000fb:96b02eb9] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/mm/frame.h
r98000fb r96b02eb9 37 37 #define KERN_FRAME_H_ 38 38 39 #include <arch/types.h> 39 #include <typedefs.h> 40 #include <trace.h> 40 41 #include <adt/list.h> 41 42 #include <mm/buddy.h> … … 81 82 82 83 typedef struct { 83 size_t refcount; /**< Tracking of shared frames */84 size_t refcount; /**< Tracking of shared frames */ 84 85 uint8_t buddy_order; /**< Buddy system block order */ 85 86 link_t buddy_link; /**< Link to the next free block inside … … 91 92 pfn_t base; /**< Frame_no of the first frame 92 93 in the frames array */ 93 size_t count; /**< Size of zone */94 size_t free_count; /**< Number of free frame_t94 size_t count; /**< Size of zone */ 95 size_t free_count; /**< Number of free frame_t 95 96 structures */ 96 size_t busy_count; /**< Number of busy frame_t97 size_t busy_count; /**< Number of busy frame_t 97 98 structures */ 98 99 zone_flags_t flags; /**< Type of the zone */ … … 108 109 */ 109 110 typedef struct { 110 SPINLOCK_DECLARE(lock);111 IRQ_SPINLOCK_DECLARE(lock); 111 112 size_t count; 112 113 zone_t info[ZONES_MAX]; … … 115 116 extern zones_t zones; 116 117 117 static inline uintptr_t PFN2ADDR(pfn_t frame)118 NO_TRACE static inline uintptr_t PFN2ADDR(pfn_t frame) 118 119 { 119 120 return (uintptr_t) (frame << FRAME_WIDTH); 120 121 } 121 122 122 static inline pfn_t ADDR2PFN(uintptr_t addr)123 NO_TRACE static inline pfn_t ADDR2PFN(uintptr_t addr) 123 124 { 124 125 return (pfn_t) (addr >> FRAME_WIDTH); 125 126 } 126 127 127 static inline size_t SIZE2FRAMES(size_t size)128 NO_TRACE static inline size_t SIZE2FRAMES(size_t size) 128 129 { 129 130 if (!size) … … 132 133 } 133 134 134 static inline size_t FRAMES2SIZE(size_t frames)135 NO_TRACE static inline size_t FRAMES2SIZE(size_t frames) 135 136 { 136 137 return (size_t) (frames << FRAME_WIDTH); 137 138 } 138 139 139 static inline bool zone_flags_available(zone_flags_t flags)140 NO_TRACE static inline bool zone_flags_available(zone_flags_t flags) 140 141 { 141 142 return ((flags & (ZONE_RESERVED | ZONE_FIRMWARE)) == 0); … … 143 144 144 145 #define IS_BUDDY_ORDER_OK(index, order) \ 145 ((~((( unative_t) -1) << (order)) & (index)) == 0)146 ((~(((sysarg_t) -1) << (order)) & (index)) == 0) 146 147 #define IS_BUDDY_LEFT_BLOCK(zone, frame) \ 147 148 (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x01) == 0) … … 166 167 extern void frame_set_parent(pfn_t, void *, size_t); 167 168 extern void frame_mark_unavailable(pfn_t, size_t); 168 extern uintptr_t zone_conf_size(size_t);169 extern size_t zone_conf_size(size_t); 169 170 extern bool zone_merge(size_t, size_t); 170 171 extern void zone_merge_all(void); 171 extern uint64_t zone_total_size(void); 172 extern uint64_t zones_total_size(void); 173 extern void zones_stats(uint64_t *, uint64_t *, uint64_t *, uint64_t *); 172 174 173 175 /* 174 176 * Console functions 175 177 */ 176 extern void zone _print_list(void);178 extern void zones_print_list(void); 177 179 extern void zone_print_one(size_t); 178 180
Note:
See TracChangeset
for help on using the changeset viewer.