Rev 724 | Rev 762 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 724 | Rev 759 | ||
---|---|---|---|
Line 33... | Line 33... | ||
33 | #include <arch/types.h> |
33 | #include <arch/types.h> |
34 | #include <typedefs.h> |
34 | #include <typedefs.h> |
35 | #include <list.h> |
35 | #include <list.h> |
36 | #include <synch/spinlock.h> |
36 | #include <synch/spinlock.h> |
37 | #include <mm/buddy.h> |
37 | #include <mm/buddy.h> |
- | 38 | #include <mm/slab.h> |
|
38 | 39 | ||
39 | #define ONE_FRAME 0 |
40 | #define ONE_FRAME 0 |
40 | 41 | ||
41 | #define FRAME_KA 1 /* skip frames conflicting with user address space */ |
42 | #define FRAME_KA 1 /* skip frames conflicting with user address space */ |
42 | #define FRAME_PANIC 2 /* panic on failure */ |
43 | #define FRAME_PANIC 2 /* panic on failure */ |
43 | #define FRAME_NON_BLOCKING 4 /* do not panic and do not sleep on failure */ |
44 | #define FRAME_ATOMIC 4 /* do not panic and do not sleep on failure */ |
44 | 45 | ||
45 | #define FRAME_OK 0 /* frame_alloc return status */ |
46 | #define FRAME_OK 0 /* frame_alloc return status */ |
46 | #define FRAME_NO_MEMORY 1 /* frame_alloc return status */ |
47 | #define FRAME_NO_MEMORY 1 /* frame_alloc return status */ |
47 | #define FRAME_ERROR 2 /* frame_alloc return status */ |
48 | #define FRAME_ERROR 2 /* frame_alloc return status */ |
48 | 49 | ||
Line 75... | Line 76... | ||
75 | 76 | ||
76 | struct frame { |
77 | struct frame { |
77 | count_t refcount; /**< tracking of shared frames */ |
78 | count_t refcount; /**< tracking of shared frames */ |
78 | __u8 buddy_order; /**< buddy system block order */ |
79 | __u8 buddy_order; /**< buddy system block order */ |
79 | link_t buddy_link; /**< link to the next free block inside one order */ |
80 | link_t buddy_link; /**< link to the next free block inside one order */ |
- | 81 | slab_slab_t *slab; /**< If allocated by slab, this points there */ |
|
80 | }; |
82 | }; |
81 | 83 | ||
82 | struct region { |
84 | struct region { |
83 | __address base; |
85 | __address base; |
84 | size_t size; |
86 | size_t size; |