Changeset 694ca93f in mainline for kernel/generic/include
- Timestamp:
- 2011-05-01T19:34:26Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0e26444
- Parents:
- 1ff896e (diff), 042fbe0 (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
- 6 edited
- 1 moved
-
ipc/ipc.h (modified) (1 diff)
-
lib/memfnc.h (moved) (moved from kernel/arch/ia32/include/memstr.h ) (3 diffs)
-
macros.h (modified) (1 diff)
-
memstr.h (modified) (1 diff)
-
mm/as.h (modified) (1 diff)
-
mm/frame.h (modified) (4 diffs)
-
mm/reserve.h (added)
-
str.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/ipc/ipc.h
r1ff896e r694ca93f 115 115 */ 116 116 #define IPC_FF_ROUTE_FROM_ME (1 << 0) 117 118 /* Data transfer flags. */ 119 #define IPC_XF_NONE 0 120 121 /** Restrict the transfer size if necessary. */ 122 #define IPC_XF_RESTRICT (1 << 0) 117 123 118 124 /** Kernel IPC interfaces -
kernel/generic/include/lib/memfnc.h
r1ff896e r694ca93f 1 1 /* 2 * Copyright (c) 20 05 Sergey Bondari2 * Copyright (c) 2011 Martin Decky 3 3 * All rights reserved. 4 4 * … … 27 27 */ 28 28 29 /** @addtogroup ia3229 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef KERN_ ia32_MEMSTR_H_36 #define KERN_ ia32_MEMSTR_H_35 #ifndef KERN_LIB_MEMFNC_H_ 36 #define KERN_LIB_MEMFNC_H_ 37 37 38 # define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt))38 #include <typedefs.h> 39 39 40 extern void memsetw(void *, size_t, uint16_t);41 extern void memsetb(void *, size_t, uint8_t);40 extern void *memset(void *, int, size_t); 41 extern void *memcpy(void *, const void *, size_t); 42 42 43 43 #endif -
kernel/generic/include/macros.h
r1ff896e r694ca93f 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/memstr.h
r1ff896e r694ca93f 37 37 38 38 #include <typedefs.h> 39 #include <arch/memstr.h>40 39 41 /* 42 * Architecture independent variants. 43 */ 44 extern void *_memcpy(void *dst, const void *src, size_t cnt); 45 extern void _memsetb(void *dst, size_t cnt, uint8_t x); 46 extern void _memsetw(void *dst, size_t cnt, uint16_t x); 47 extern void *memmove(void *dst, const void *src, size_t cnt); 40 #define memset(dst, val, cnt) __builtin_memset((dst), (val), (cnt)) 41 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 42 43 extern void memsetb(void *, size_t, uint8_t); 44 extern void memsetw(void *, size_t, uint16_t); 45 extern void *memmove(void *, const void *, size_t); 48 46 49 47 #endif -
kernel/generic/include/mm/as.h
r1ff896e r694ca93f 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
r1ff896e r694ca93f 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); 163 166 164 extern size_t find_zone(pfn_t frame, size_t count, size_t hint);167 extern size_t find_zone(pfn_t, size_t, size_t); 165 168 extern size_t zone_create(pfn_t, size_t, pfn_t, zone_flags_t); 166 169 extern void *frame_get_parent(pfn_t, size_t); -
kernel/generic/include/str.h
r1ff896e r694ca93f 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
Note:
See TracChangeset
for help on using the changeset viewer.
