Commit Graph

152 Commits

Author SHA1 Message Date
Gregory Nutt 07e9a02af9 Forgot to add two files in previous commit 2015-07-10 08:46:13 -06:00
Gregory Nutt 59cc4a7a7b Protected mode: Redesign how the user space heap is accessed from the kernel code. It used to call memory management functions in user space via function pointers in the userspace interface. That is inefficient because the first thing that those memory management functions do is to trap back into the kernel to get the current PID. Worse, that operation can be fatal is certain fragile situations such as when a task is exitting.
The solution is to remove all of the memory management function calls from the interface.  Instead, the interface exports the userspace heap structure and then kernel size implementations of those memory management functions will operate on the userspace heap structure.  This avoids the unnecessary system calls and, more importantly, failures do to freeing memory when a test exits.
2015-07-10 08:37:02 -06:00
Gregory Nutt 342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt 0476d8168a More missing semicolons after DEBUGASSERT 2015-05-27 13:32:39 -06:00
Gregory Nutt 2aa80e06f5 Remove executable flag from more .c and .h files 2015-04-09 08:20:57 -06:00
Gregory Nutt a4a6917267 Fixes some issues found by the PX4 team using Coverity. From Pavel Krienko 2015-01-19 13:01:20 -06:00
Gregory Nutt 9ac09db800 More fixes to problems noted by cppcheck. Some are kind of risky; some are real bugs. 2014-11-25 13:46:14 -06:00
Gregory Nutt f06289e4d5 If the INTR granule allocator mode is enabled, there is no
semaphore to destroy.  From Lorenz Meier.
2014-11-12 06:56:32 -06:00
Gregory Nutt 8634a5e41c Fix a typo in a Kconfig file 2014-09-27 16:11:48 -06:00
Gregory Nutt b33c2d9cef Move include/nuttx/mm.h to include/nuttx/mm/mm.h 2014-09-24 07:29:09 -06:00
Gregory Nutt 1863370672 Move include/nuttx/shm.h to include/nuttx/mm/shm.h 2014-09-24 07:05:02 -06:00
Gregory Nutt 2fa7431ee7 Move include/nuttx/gran.h to include/nuttx/mm/gran.h 2014-09-24 06:55:26 -06:00
Gregory Nutt 0f97d81f8d Completes the implemenation of the core shared memory logic: shmget(), shmctl(), shmat(), and shmdt(). This is still some unfinish platform-specific code that needs to be done before we can begin testing. 2014-09-23 16:07:12 -06:00
Gregory Nutt d546ebabe4 Remove executable mode 2014-09-23 16:06:22 -06:00
Gregory Nutt ee0d20d44c Add interfaces to support un-initializing a granule allocator. 2014-09-23 16:05:32 -06:00
Gregory Nutt 835c91b03a Add support for a per-process virtual page allocator. This is a new member of the task_group_s structure. The allocaor must be initialized when a new user process is started and uninitialize when the process group is finally destroyed. It is used by shmat() and shmdt() to pick the virtual address onto which to map the shared physical memory. 2014-09-23 16:04:39 -06:00
Gregory Nutt b542d1733f Cosmetic 2014-09-23 16:03:52 -06:00
Gregory Nutt 566dc8dd38 Add interfaces to support un-initializing a granule allocator. 2014-09-23 15:50:45 -06:00
Gregory Nutt 115634ff4d Flesh out shmctl() logic 2014-09-23 11:41:05 -06:00
Gregory Nutt 5efd5738e9 Flesh out basic logic for shmget() 2014-09-23 10:42:18 -06:00
Gregory Nutt a73a3ef99f Add shared memory initializatin logic 2014-09-23 08:46:31 -06:00
Gregory Nutt 242d5f2068 Add README files and configuration support for the shared memory logic 2014-09-23 07:11:47 -06:00
Gregory Nutt 18ce64d61e Add the build framework and skeleton files for the shared memory feature (no logic yet provided) 2014-09-22 14:53:56 -06:00
Gregory Nutt 6bed778738 Again I forget to add a file needed in a previous commit 2014-09-22 10:59:00 -06:00
Gregory Nutt c5a206666d Add a home for forthcoming shared memory logic 2014-09-22 10:58:27 -06:00
Gregory Nutt 3464089542 Move core heap allocator logic from mm/. to mm/mm_heap/. 2014-09-22 10:53:50 -06:00
Gregory Nutt 8b8c134efa Move the user heap allocator front-end from mm/. to mm/umm_heap/. 2014-09-22 10:48:58 -06:00
Gregory Nutt 77bf9d6ae7 Forgot to add a file in the last commit 2014-09-22 10:43:46 -06:00
Gregory Nutt c3a2527e56 Move the kernel heap allocator front-end from mm/. to mm/kmm_heap/. 2014-09-22 10:42:26 -06:00
Gregory Nutt 907e45752b Move granuale allocator and page allocator from mm/. to mm/mm_gran/. 2014-09-22 10:33:23 -06:00
Gregory Nutt 5d9276ed71 More changes so that the KNSH build survives the changes needed for the ELF build 2014-09-16 15:55:21 -06:00
Gregory Nutt 925fc9ad81 First round of changes to get the ELF configuration building again 2014-09-16 15:37:05 -06:00
Gregory Nutt 8993910427 Fix a typo in use of a configuration setting 2014-09-13 12:24:08 -06:00
Gregory Nutt 205c23b9d6 Add logic to initialize the per-process user heap when each user process is started 2014-09-10 15:55:36 -06:00
Gregory Nutt 0c8830f9f3 Granule allocator initialization uses wrong allocator to setting aside kernel memory 2014-09-03 13:46:05 -06:00
Gregory Nutt b05f29dbfe I love/hate conditional compilation 2014-09-03 11:43:23 -06:00
Gregory Nutt 67d516d9d1 Fix several compile errors for logic added for CONFIG_BUILD_KERNEL, but which cause problems for other configurations 2014-09-03 09:21:59 -06:00
Gregory Nutt 1a4f8914c5 Add support for delivery of use-mode signals in the kernel build. 2014-09-02 15:58:14 -06:00
Gregory Nutt b4438e44c5 Restructuring of build to allow use of use-space allocators by kernel logic in the kernel build. 2014-09-02 11:22:09 -06:00
Gregory Nutt b085e084f4 Space at the beginning of the process data space is now reserved for user heap management structures. In the kernel build mode, these heap structures are shared between the kernel and use code in order to allocate user-specific data. 2014-09-02 11:21:23 -06:00
Gregory Nutt a5af2568eb sbrk() need to initialized the memory manager on the first call 2014-09-02 08:05:11 -06:00
Gregory Nutt 45c31d633c Completes the implementation of sbrk() (untested) 2014-09-01 10:46:51 -06:00
Gregory Nutt f8a8ce4b18 Initial implementatino of sbrk() 2014-09-01 07:37:54 -06:00
Gregory Nutt 205260d5e2 Reanem kzalloc to kmm_zalloc for consistency 2014-08-31 17:34:44 -06:00
Gregory Nutt 1780810d3d Rename kmalloc to kmm_malloc for consistency 2014-08-31 17:26:36 -06:00
Gregory Nutt 54fa3b0b59 Rename kfree to kmm_free for consistency with other naming conventions 2014-08-31 17:04:02 -06:00
Gregory Nutt 9cd1ddada4 Rename kmemalign to kmm_memalign and krealloc to kmm_realooc for consistency with other naming 2014-08-31 15:27:37 -06:00
Gregory Nutt 5a488475a8 Rename kmemalign to kmm_memalign for consitency with other naming 2014-08-31 14:57:31 -06:00
Gregory Nutt ecdb5120dd Add low-level memory management hooks that will be needed to support brk() and sbrk() 2014-08-31 14:42:45 -06:00
Gregory Nutt b0246d0b7d mm: Break up mm_user.c and mm_kernel.c into separate files for better symmetry 2014-08-31 11:46:47 -06:00