Changeset 3375bd4 in mainline for kernel/generic/include
- Timestamp:
- 2011-05-17T07:44:17Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 04c418d, 2586860, 5e6e50b
- Parents:
- 72cd53d (diff), 0d8a304 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- kernel/generic/include
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ipc/event.h
r72cd53d r3375bd4 51 51 /** Counter. */ 52 52 size_t counter; 53 /** Masked flag. */ 54 bool masked; 55 /** Unmask callback. */ 56 void (*unmask_cb)(void); 53 57 } event_t; 54 58 55 59 extern void event_init(void); 60 extern void event_cleanup_answerbox(answerbox_t *); 61 extern void event_set_unmask_callback(event_type_t, void (*)(void)); 62 63 #define event_notify_0(e, m) \ 64 event_notify((e), (m), 0, 0, 0, 0, 0) 65 #define event_notify_1(e, m, a1) \ 66 event_notify((e), (m), (a1), 0, 0, 0, 0) 67 #define event_notify_2(e, m, a1, a2) \ 68 event_notify((e), (m), (a1), (a2), 0, 0, 0) 69 #define event_notify_3(e, m, a1, a2, a3) \ 70 event_notify((e), (m), (a1), (a2), (a3), 0, 0) 71 #define event_notify_4(e, m, a1, a2, a3, a4) \ 72 event_notify((e), (m), (a1), (a2), (a3), (a4), 0) 73 #define event_notify_5(e, m, a1, a2, a3, a4, a5) \ 74 event_notify((e), (m), (a1), (a2), (a3), (a4), (a5)) 75 76 extern int event_notify(event_type_t, bool, sysarg_t, sysarg_t, sysarg_t, 77 sysarg_t, sysarg_t); 78 56 79 extern sysarg_t sys_event_subscribe(sysarg_t, sysarg_t); 57 extern bool event_is_subscribed(event_type_t); 58 extern void event_cleanup_answerbox(answerbox_t *); 59 60 #define event_notify_0(e) \ 61 event_notify((e), 0, 0, 0, 0, 0) 62 #define event_notify_1(e, a1) \ 63 event_notify((e), (a1), 0, 0, 0, 0) 64 #define event_notify_2(e, a1, a2) \ 65 event_notify((e), (a1), (a2), 0, 0, 0) 66 #define event_notify_3(e, a1, a2, a3) \ 67 event_notify((e), (a1), (a2), (a3), 0, 0) 68 #define event_notify_4(e, a1, a2, a3, a4) \ 69 event_notify((e), (a1), (a2), (a3), (a4), 0) 70 #define event_notify_5(e, a1, a2, a3, a4, a5) \ 71 event_notify((e), (a1), (a2), (a3), (a4), (a5)) 72 73 extern void event_notify(event_type_t, sysarg_t, sysarg_t, sysarg_t, 74 sysarg_t, sysarg_t); 80 extern sysarg_t sys_event_unmask(sysarg_t); 75 81 76 82 #endif -
kernel/generic/include/ipc/event_types.h
r72cd53d r3375bd4 39 39 /** New data available in kernel log */ 40 40 EVENT_KLOG = 0, 41 /** Returning from kernel console to us erspace */41 /** Returning from kernel console to uspace */ 42 42 EVENT_KCONSOLE, 43 43 /** A task/thread has faulted and will be terminated */ -
kernel/generic/include/macros.h
r72cd53d r3375bd4 95 95 overlaps(KA2PA((x)), (szx), KA2PA((y)), (szy)) 96 96 97 #define SIZE2KB(size) ((size) >> 10) 98 #define SIZE2MB(size) ((size) >> 20) 99 100 #define KB2SIZE(kb) ((kb) << 10) 101 #define MB2SIZE(mb) ((mb) << 20) 97 #define KiB2SIZE(kb) ((kb) << 10) 98 #define MiB2SIZE(mb) ((mb) << 20) 102 99 103 100 #define STRING(arg) STRING_ARG(arg) -
kernel/generic/include/mm/as.h
r72cd53d r3375bd4 238 238 /** Address space area backend structure. */ 239 239 typedef struct mem_backend { 240 bool (* create)(as_area_t *); 241 bool (* resize)(as_area_t *, size_t); 242 void (* share)(as_area_t *); 243 void (* destroy)(as_area_t *); 244 240 245 int (* page_fault)(as_area_t *, uintptr_t, pf_access_t); 241 246 void (* frame_free)(as_area_t *, uintptr_t, uintptr_t); 242 void (* share)(as_area_t *);243 247 } mem_backend_t; 244 248 -
kernel/generic/include/mm/frame.h
r72cd53d r3375bd4 62 62 63 63 /** Convert the frame address to kernel VA. */ 64 #define FRAME_KA 0x 0164 #define FRAME_KA 0x1 65 65 /** Do not panic and do not sleep on failure. */ 66 #define FRAME_ATOMIC 0x 0266 #define FRAME_ATOMIC 0x2 67 67 /** Do not start reclaiming when no free memory. */ 68 #define FRAME_NO_RECLAIM 0x04 68 #define FRAME_NO_RECLAIM 0x4 69 /** Do not reserve / unreserve memory. */ 70 #define FRAME_NO_RESERVE 0x8 69 71 70 72 typedef uint8_t zone_flags_t; 71 73 72 74 /** Available zone (free for allocation) */ 73 #define ZONE_AVAILABLE 0x0 075 #define ZONE_AVAILABLE 0x0 74 76 /** Zone is reserved (not available for allocation) */ 75 #define ZONE_RESERVED 0x 0877 #define ZONE_RESERVED 0x8 76 78 /** Zone is used by firmware (not available for allocation) */ 77 79 #define ZONE_FIRMWARE 0x10 … … 85 87 uint8_t buddy_order; /**< Buddy system block order */ 86 88 link_t buddy_link; /**< Link to the next free block inside 87 one order */89 one order */ 88 90 void *parent; /**< If allocated by slab, this points there */ 89 91 } frame_t; … … 91 93 typedef struct { 92 94 pfn_t base; /**< Frame_no of the first frame 93 in the frames array */95 in the frames array */ 94 96 size_t count; /**< Size of zone */ 95 97 size_t free_count; /**< Number of free frame_t 96 structures */98 structures */ 97 99 size_t busy_count; /**< Number of busy frame_t 98 structures */100 structures */ 99 101 zone_flags_t flags; /**< Type of the zone */ 100 102 101 103 frame_t *frames; /**< Array of frame_t structures 102 in this zone */104 in this zone */ 103 105 buddy_system_t *buddy_system; /**< Buddy system for the zone */ 104 106 } zone_t; … … 146 148 ((~(((sysarg_t) -1) << (order)) & (index)) == 0) 147 149 #define IS_BUDDY_LEFT_BLOCK(zone, frame) \ 148 (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x 01) == 0)150 (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0) 149 151 #define IS_BUDDY_RIGHT_BLOCK(zone, frame) \ 150 (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x 01) == 1)152 (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1) 151 153 #define IS_BUDDY_LEFT_BLOCK_ABS(zone, frame) \ 152 (((frame_index_abs((zone), (frame)) >> (frame)->buddy_order) & 0x 01) == 0)154 (((frame_index_abs((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0) 153 155 #define IS_BUDDY_RIGHT_BLOCK_ABS(zone, frame) \ 154 (((frame_index_abs((zone), (frame)) >> (frame)->buddy_order) & 0x01) == 1) 155 156 #define frame_alloc(order, flags) \ 157 frame_alloc_generic(order, flags, NULL) 156 (((frame_index_abs((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1) 158 157 159 158 extern void frame_init(void); 160 159 extern void *frame_alloc_generic(uint8_t, frame_flags_t, size_t *); 160 extern void *frame_alloc(uint8_t, frame_flags_t); 161 extern void *frame_alloc_noreserve(uint8_t, frame_flags_t); 162 extern void frame_free_generic(uintptr_t, frame_flags_t); 161 163 extern void frame_free(uintptr_t); 164 extern void frame_free_noreserve(uintptr_t); 162 165 extern void frame_reference_add(pfn_t); 166 extern size_t frame_total_free_get(void); 163 167 164 extern size_t find_zone(pfn_t frame, size_t count, size_t hint);168 extern size_t find_zone(pfn_t, size_t, size_t); 165 169 extern size_t zone_create(pfn_t, size_t, pfn_t, zone_flags_t); 166 170 extern void *frame_get_parent(pfn_t, size_t); -
kernel/generic/include/str.h
r72cd53d r3375bd4 99 99 extern int str_uint64(const char *, char **, unsigned int, bool, uint64_t *); 100 100 101 extern void order_suffix(const uint64_t val, uint64_t *rv, char *suffix); 101 extern void order_suffix(const uint64_t, uint64_t *, char *); 102 extern void bin_order_suffix(const uint64_t, uint64_t *, const char **, bool); 102 103 103 104 #endif -
kernel/generic/include/syscall/syscall.h
r72cd53d r3375bd4 78 78 79 79 SYS_EVENT_SUBSCRIBE, 80 SYS_EVENT_UNMASK, 80 81 81 82 SYS_CAP_GRANT,
Note:
See TracChangeset
for help on using the changeset viewer.