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