diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-09 21:12:20 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-09 21:12:20 +0000 |
commit | dda5be5c1fc672b5d9cb3a910b5e0cb0a41046c5 (patch) | |
tree | 0af32db840a032a50312791977b7d129def1d5b3 /nuttx/include/nuttx/kmalloc.h | |
parent | 2ac33dcffabd9422659c3b013ed8624c09ae90e4 (diff) | |
download | nuttx-dda5be5c1fc672b5d9cb3a910b5e0cb0a41046c5.tar.gz nuttx-dda5be5c1fc672b5d9cb3a910b5e0cb0a41046c5.tar.bz2 nuttx-dda5be5c1fc672b5d9cb3a910b5e0cb0a41046c5.zip |
More changes for a kernel-mode allocator (more to be done)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5724 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/include/nuttx/kmalloc.h')
-rw-r--r-- | nuttx/include/nuttx/kmalloc.h | 61 |
1 files changed, 56 insertions, 5 deletions
diff --git a/nuttx/include/nuttx/kmalloc.h b/nuttx/include/nuttx/kmalloc.h index 95ae33e32..6a9c0da5b 100644 --- a/nuttx/include/nuttx/kmalloc.h +++ b/nuttx/include/nuttx/kmalloc.h @@ -47,6 +47,8 @@ #include <nuttx/mm.h> +#if !defined(CONFIG_NUTTX_KERNEL) || defined(__KERNEL__) + /**************************************************************************** * Public Types ****************************************************************************/ @@ -73,9 +75,43 @@ extern "C" * be used for both the kernel- and user-mode objects. */ +/* This familiy of allocators is used to manage user-accessible memory + * from the kernel. + */ + #ifndef CONFIG_NUTTX_KERNEL -# define kmm_initialize(h,s) umm_initialize(h,s) +# define kumm_initialize(h,s) umm_initialize(h,s) +# define kumm_addregion(h,s) umm_addregion(h,s) +# define kumm_trysemaphore() umm_trysemaphore() +# define kumm_givesemaphore() umm_givesemaphore() + +# define kumalloc(s) malloc(s) +# define kuzalloc(s) zalloc(s) +# define kurealloc(p,s) realloc(p,s) +# define kufree(p) free(p) + +#else + +/* This familiy of allocators is used to manage kernel protected memory */ + +void kumm_initialize(FAR void *heap_start, size_t heap_size); +void kumm_addregion(FAR void *heapstart, size_t heapsize); +int kumm_trysemaphore(void); +void kumm_givesemaphore(void); + +FAR void *kumalloc(size_t size); +FAR void *kuzalloc(size_t size); +FAR void *kurealloc(FAR void *oldmem, size_t newsize); +void kufree(FAR void *mem); + +#endif + +/* This familiy of allocators is used to manage kernel protected memory */ + +#ifndef CONFIG_NUTTX_KERNEL + +# define kmm_initialize(h,s) /* Initialization done by kumm_initialize */ # define kmm_addregion(h,s) umm_addregion(h,s) # define kmm_trysemaphore() umm_trysemaphore() # define kmm_givesemaphore() umm_givesemaphore() @@ -85,6 +121,18 @@ extern "C" # define krealloc(p,s) realloc(p,s) # define kfree(p) free(p) +#elif !defined(CONFIG_MM_KERNEL_HEAP) + +# define kmm_initialize(h,s) /* Initialization done by kumm_initialize */ +# define kmm_addregion(h,s) kumm_addregion(h,s) +# define kmm_trysemaphore() kumm_trysemaphore() +# define kmm_givesemaphore() kumm_givesemaphore() + +# define kmalloc(s) kumalloc(s) +# define kzalloc(s) kuzalloc(s) +# define krealloc(p,s) kurealloc(p,s) +# define kfree(p) kufree(p) + #else void kmm_initialize(FAR void *heap_start, size_t heap_size); @@ -92,10 +140,12 @@ void kmm_addregion(FAR void *heapstart, size_t heapsize); int kmm_trysemaphore(void); void kmm_givesemaphore(void); -FAR void *kmalloc(size_t); -FAR void *kzalloc(size_t); -FAR void *krealloc(FAR void*, size_t); -void kfree(FAR void*); +FAR void *kmalloc(size_t size); +FAR void *kzalloc(size_t size); +FAR void *krealloc(FAR void *oldmem, size_t newsize); +void kfree(FAR void *mem); + +bool kmm_heapmember(FAR void *mem); #endif @@ -124,4 +174,5 @@ void sched_garbagecollection(void); } #endif +#endif /* !CONFIG_NUTTX_KERNEL || __KERNEL__ */ #endif /* __INCLUDE_NUTTX_KMALLOC_H */ |