Changes in kernel/generic/src/mm/slab.c [abf6c01:bab75df6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/slab.c
rabf6c01 rbab75df6 667 667 size_t (*destructor)(void *obj), unsigned int flags) 668 668 { 669 slab_cache_t *cache = slab_alloc(&slab_cache_cache, FRAME_ATOMIC); 670 if (!cache) 671 panic("Not enough memory to allocate slab cache %s.", name); 672 669 slab_cache_t *cache = slab_alloc(&slab_cache_cache, 0); 673 670 _slab_cache_create(cache, name, size, align, constructor, destructor, 674 671 flags); … … 733 730 NO_TRACE static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab) 734 731 { 735 if (!obj)736 return;737 738 732 ipl_t ipl = interrupts_disable(); 739 733 … … 960 954 } 961 955 962 void *malloc(size_t size)956 static void *_malloc(size_t size, unsigned int flags) 963 957 { 964 958 assert(_slab_initialized); … … 970 964 uint8_t idx = fnzb(size - 1) - SLAB_MIN_MALLOC_W + 1; 971 965 972 return slab_alloc(malloc_caches[idx], FRAME_ATOMIC); 973 } 974 975 void *realloc(void *ptr, size_t size) 966 return slab_alloc(malloc_caches[idx], flags); 967 } 968 969 void *malloc(size_t size) 970 { 971 return _malloc(size, FRAME_ATOMIC); 972 } 973 974 /** Non-failing malloc. 975 * Never returns NULL, but may block forever if no memory is available. 976 */ 977 void *nfmalloc(size_t size) 978 { 979 return _malloc(size, 0); 980 } 981 982 static void *_realloc(void *ptr, size_t size, unsigned int flags) 976 983 { 977 984 assert(_slab_initialized); … … 985 992 uint8_t idx = fnzb(size - 1) - SLAB_MIN_MALLOC_W + 1; 986 993 987 new_ptr = slab_alloc(malloc_caches[idx], FRAME_ATOMIC);994 new_ptr = slab_alloc(malloc_caches[idx], flags); 988 995 } else 989 996 new_ptr = NULL; … … 1000 1007 } 1001 1008 1009 void *realloc(void *ptr, size_t size) 1010 { 1011 return _realloc(ptr, size, FRAME_ATOMIC); 1012 } 1013 1002 1014 void free(void *ptr) 1003 1015 {
Note:
See TracChangeset
for help on using the changeset viewer.