Gregory Nutt
|
bb1d91bd83
|
Make building of low-priority work queue independent of also building the high-priority work queue
|
2014-10-11 14:43:24 -06:00 |
|
Gregory Nutt
|
c0b703ac73
|
Fix some missing conditional compilation that caused build failures in some configurations
|
2014-10-11 08:50:00 -06:00 |
|
Gregory Nutt
|
d2424ac65c
|
Fix a couple of problems introduced in the last commmits
|
2014-10-11 08:29:26 -06:00 |
|
Gregory Nutt
|
0218f01f12
|
If there mutliple low-priority worker threads, only one needs to perform garbage collection
|
2014-10-11 07:09:21 -06:00 |
|
Gregory Nutt
|
234f73cb09
|
Add logic for priority inheritance with multiple worker threads. How should this work? Tentatively, the all get reprioritized together. It would be best to just reprioritize the single thread doing the high priority work, but we don't know which that will be in advance
|
2014-10-10 17:47:39 -06:00 |
|
Gregory Nutt
|
4a4b3ac537
|
Add support for multiple low-priority worker threads
|
2014-10-10 16:24:50 -06:00 |
|
Gregory Nutt
|
438e3e1a90
|
Fix a few bugs introduced in the last checkin
|
2014-10-10 15:06:13 -06:00 |
|
Gregory Nutt
|
cf59a195ba
|
User-mode work queue logic should not disable interrupts
|
2014-10-10 14:52:04 -06:00 |
|
Gregory Nutt
|
16a3e83258
|
Add support for delays of different durations in work queue processing
|
2014-10-10 13:21:37 -06:00 |
|
Gregory Nutt
|
75e7a4dbfc
|
Minor changes to work queue timing logic
|
2014-10-10 12:27:11 -06:00 |
|
Gregory Nutt
|
b2cebaa9d4
|
Modularize starting of worker threads to better isolate individual initialization characteristics
|
2014-10-10 09:38:28 -06:00 |
|
Gregory Nutt
|
2015fd76e2
|
Fix some conditional logic in last work queue repartitioning change
|
2014-10-10 08:47:41 -06:00 |
|
Gregory Nutt
|
1afc9773ac
|
Decoupling work queue data structures. This is part of the preparation to support multiple low-priority worker threads
|
2014-10-10 08:35:58 -06:00 |
|
Gregory Nutt
|
6220256a09
|
Repartition work queue code. Move kernel-specific parts from libc/wqueue to sched/wqueue
|
2014-10-10 06:22:51 -06:00 |
|
Gregory Nutt
|
7f36c4e97b
|
Update some Kconfig comments; Add a upper limit on the lower priority worker thread for priority inheritance
|
2014-10-07 17:11:26 -06:00 |
|
Gregory Nutt
|
322f9f401c
|
Simplify how C source files are selected in the build
|
2014-10-07 07:42:36 -06:00 |
|
Gregory Nutt
|
d7843c8e24
|
Add support for priority inheritance on the low priority worker queue
|
2014-10-07 07:41:52 -06:00 |
|
Gregory Nutt
|
38ddbc774f
|
Cosmetic change to comments
|
2014-10-06 18:03:01 -06:00 |
|
Gregory Nutt
|
37cf4135c4
|
fs_initialize() is no longer weak
|
2014-10-06 11:45:35 -06:00 |
|
Gregory Nutt
|
d914f3ceec
|
Major structure of file system functions to better support asynchronous I/O. Respository should not be trusted until I have a chance to verify everything
|
2014-10-06 10:53:25 -06:00 |
|
Gregory Nutt
|
87eb1d47ed
|
Fix some recently introduced typos, build problems, and warnings
|
2014-10-05 16:58:52 -06:00 |
|
Gregory Nutt
|
652d3ed29d
|
Rename CONFIG_LIBC_AIO to CONFIG_FS_AIO since it is now an OS property
|
2014-10-05 15:44:43 -06:00 |
|
Gregory Nutt
|
31cdcde73a
|
Add definitions for SIGPOLL
|
2014-10-05 06:02:37 -06:00 |
|
Gregory Nutt
|
da29907ac9
|
Update TODO list + cosmetic changes to clock_systimer.c
|
2014-10-03 11:21:35 -06:00 |
|
Gregory Nutt
|
8d43a6bdcd
|
Fix build error with CONFIG_SYSTEM_TIME64
|
2014-10-03 10:20:46 -06:00 |
|
Gregory Nutt
|
71b574f26c
|
Repartition some message queue logic: sched/mqueue should have all mqueue knowledge; fs/mqueue should deal only with inodes
|
2014-09-30 08:03:39 -06:00 |
|
Gregory Nutt
|
fcfe877e96
|
Cosmetic update to comments
|
2014-09-29 16:22:21 -06:00 |
|
Gregory Nutt
|
1f2cc9f4fe
|
Complete re-implementation of mq_close
|
2014-09-29 15:33:34 -06:00 |
|
Gregory Nutt
|
584d0fe4ad
|
Complete re-implementation of mq_open()
|
2014-09-29 14:59:31 -06:00 |
|
Gregory Nutt
|
9e975a217d
|
Separate mqueue allocation logic from mq_open() and put it in sched/mqueue/mq_msgqalloc.c
|
2014-09-29 14:09:31 -06:00 |
|
Gregory Nutt
|
b0f80cc8db
|
Move mq_open.c, mq_close.c, and mq_unlink.c from sched/mqueue to fs/mqueue
|
2014-09-29 13:35:32 -06:00 |
|
Gregory Nutt
|
e3fa34681b
|
Convert mqueue structure for use in VFS as inode data; rename mqueue_inode_s; remove links, reference counts and name from mqueue structure. These will be replaced by VFS data. Remove g_msgqueues and mq_findnamed.c; these will be replace with VFS logic
|
2014-09-29 13:19:11 -06:00 |
|
Gregory Nutt
|
542e706d7d
|
Fix a perverse case where vfork() is called from a pthread. Still not recommended
|
2014-09-29 12:21:34 -06:00 |
|
Gregory Nutt
|
1dc9768c1a
|
Fix vfork(). Now that arguments are kept on the stack, the way that arguments are passed from parent to child in vfork() must change. This bug has always been present, but was not visible with the old strdup() way of passing arguments
|
2014-09-29 10:45:44 -06:00 |
|
Gregory Nutt
|
9a3f18db37
|
Fix missing header file for bug introduced yesterday
|
2014-09-29 07:48:45 -06:00 |
|
Gregory Nutt
|
8c958be5ab
|
Semaphore initialization is now only required if priority inheritance is initialized
|
2014-09-29 06:50:48 -06:00 |
|
Gregory Nutt
|
650a0d0615
|
Completes VFS-based named semaphore implemetation. Still a little buggy
|
2014-09-28 15:58:56 -06:00 |
|
Gregory Nutt
|
30694f064c
|
Add VFS-based sem_open() implementation
|
2014-09-28 14:35:17 -06:00 |
|
Gregory Nutt
|
a41c1de32c
|
Add basic data structures that will allow us to move named semaphore support out of the OS and into the VFS (not complete).
|
2014-09-28 10:15:33 -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
|
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
|
e326fcfef3
|
Fix some inconsistent field name in struct task_group_s: addrenv should be tg_addrenv.
|
2014-09-23 16:01:44 -06:00 |
|
Gregory Nutt
|
a73a3ef99f
|
Add shared memory initializatin logic
|
2014-09-23 08:46:31 -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
|
1ef758d67f
|
A couple more changes for clean ELF build
|
2014-09-16 15:40:48 -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
|
701719b2ca
|
Don't release user stack in kernel build. Already destroyed with all of the address environment
|
2014-09-15 12:45:41 -06:00 |
|
Gregory Nutt
|
a5e30ac4a1
|
execv() is a basic system interface. It should not be in libc/ but rather in sched/task. Its symboltable helper logic also belongs in the kernel but belings in binfmt/ with the other symbol table logic
|
2014-09-15 10:16:20 -06:00 |
|
Gregory Nutt
|
da7a440b35
|
execv() is a basic system interface. It should not be in libc/ but rather in sched/task. Its symboltable helper logic also belongs in the kernel but belings in binfmt/ with the other symbol table logic
|
2014-09-15 10:15:19 -06:00 |
|
Gregory Nutt
|
3649dab9bd
|
Initial integration of kernel stack (does not work)
|
2014-09-14 11:19:34 -06:00 |
|
Gregory Nutt
|
e12213592b
|
Don't build task_create() or task_spawn() interfaces if there is an addres environment
|
2014-09-14 08:22:21 -06:00 |
|
Gregory Nutt
|
eae146d641
|
Kernel proxy thread should be a kernel thread, not a user task
|
2014-09-14 08:20:40 -06:00 |
|
Gregory Nutt
|
ba7d5acf94
|
Fix a couple more places where the wrong allocator is being used
|
2014-09-11 15:56:04 -06:00 |
|
Gregory Nutt
|
fc35e35165
|
When a privileged thread exits, we have to use the kernel alloctor to free memory; when an unprivileged thread exits, we don't have to do anything... heap memory will be cleaned up when the address environment is torn down
|
2014-09-11 09:00:10 -06:00 |
|
Gregory Nutt
|
44499ed46c
|
Rename some functions and reshuffling some paramters
|
2014-09-11 08:37:06 -06:00 |
|
Gregory Nutt
|
81a4de4a4d
|
Kconfig choice value needs a prompt
|
2014-09-11 07:18:33 -06:00 |
|
Gregory Nutt
|
4a20cd65c5
|
clock_gettime.c: Fix a cornercase bug in clock_gettime()
|
2014-09-10 17:10:54 -06:00 |
|
Gregory Nutt
|
c19659d7d2
|
Fixes to clock bias logic. Remove vestiges of g_tickbias; apply bias instead to g_basetime
|
2014-09-10 16:36:25 -06:00 |
|
Gregory Nutt
|
e953fb11cd
|
A const storage class to to phthread parameters. From Freddie Chopin
|
2014-09-08 06:21:48 -06:00 |
|
Gregory Nutt
|
1822b86373
|
Fix some conditional compilation in kernel build mode. And, while we are touching this logic, make g_default_pthread_attr const.
|
2014-09-07 10:46:58 -06:00 |
|
Gregory Nutt
|
47d55c28dc
|
Mostly cosmetic changes
|
2014-09-04 10:28:38 -06:00 |
|
Gregory Nutt
|
e958040269
|
Add capability to perform initial board initialization on a separate worker thread.
|
2014-09-03 18:36:43 -06:00 |
|
Gregory Nutt
|
b2a94b6f2b
|
Fix more places where the user-mode allocator is used to allocate kernel thread resources -- before the user-mode allocator even exists
|
2014-09-03 14:58:24 -06:00 |
|
Gregory Nutt
|
fd6205b62a
|
Group creation logic must use new group flag when allocating resources so that the privileges on the resource are set correctly
|
2014-09-03 13:49:35 -06:00 |
|
Gregory Nutt
|
c81093913a
|
IDLE TCB setup needs to indicate the the IDLE thread is a privileged, kernel thread
|
2014-09-03 13:47:11 -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
|
a5af2568eb
|
sbrk() need to initialized the memory manager on the first call
|
2014-09-02 08:05:11 -06:00 |
|
Gregory Nutt
|
0e3c182e3b
|
Fix error in initialize of IDLE TCB due to last change. The argument list is no long in the TCB, but in the stack. But not for the IDLE task. It needs its own mini-argv[] list so that it looks more like other threads.
|
2014-09-01 16:49:42 -06:00 |
|
Gregory Nutt
|
64ab35b399
|
There used to be two ways to pass parameters to new tasks, depending upon the configuration: Either (1) argv[] as created as an array with each string strdup'ed. Or (1) argv[] array and strings were created on the stack before the new task was started. Now, there is only one way, way (1). Way (2) might be slightly more compact, but this is not worth carry the complexity of two different ways of doing the same thing.
|
2014-09-01 15:39:34 -06:00 |
|
Gregory Nutt
|
23147c40a5
|
Remove final traces of the 8015 from the NuttX source tree
|
2014-09-01 13:21:15 -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
|
9aca0c1c84
|
Rename kumalloc to kumm_malloc and kuzalloc to kumm_zalloc for consistency with other naming
|
2014-08-31 16:24:24 -06:00 |
|
Gregory Nutt
|
9ad7dae4c1
|
Rename kufree to kumm_free for consistency with other naming
|
2014-08-31 16:15:11 -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
|
2904fb0420
|
Clean up some kernel build heap allocation issues. The Cortex-A kernel build now compiles without errors (but cannot link until brk() and sbrk() are implemented).
|
2014-08-31 12:50:05 -06:00 |
|
Gregory Nutt
|
67a54fd52e
|
ARMv7-A: A little more logic and a few more fixes for Cortex-A kernel build
|
2014-08-31 07:15:46 -06:00 |
|
Gregory Nutt
|
fc7bd31e07
|
last change alters semantics of __HAVE_KERNEL_GLOBALS
|
2014-08-30 14:44:48 -06:00 |
|
Gregory Nutt
|
2029236ed0
|
Back out and replace recent kludges for errno and clock_systimer. There is a cleaner way
|
2014-08-30 14:26:56 -06:00 |
|
Gregory Nutt
|
34ff07008a
|
Add configuration options to start the system from a program on a file system
|
2014-08-30 13:27:23 -06:00 |
|
Gregory Nutt
|
2906ff6a4a
|
Cosmetic: Fix all comments, defaults, etc. that references the defunct name user_start
|
2014-08-30 11:14:51 -06:00 |
|
Gregory Nutt
|
e3ff0689bb
|
Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL
|
2014-08-29 14:47:22 -06:00 |
|
Gregory Nutt
|
0ab1b0de25
|
nuttx/sched: Remove explicit references to errno. That is a problem from within the kernel for certain configurations
|
2014-08-28 17:00:24 -06:00 |
|
Gregory Nutt
|
9ab67dce75
|
In some configurations, g_system_tmer must be extern'ed as a private variable
|
2014-08-28 17:00:03 -06:00 |
|
Gregory Nutt
|
45f3328247
|
Fix an error introduced into ALL implmentations of interrupt dispatch logic
|
2014-08-28 08:41:57 -06:00 |
|
Gregory Nutt
|
d35723749b
|
Minor address environment clean-up. Cannot generate debug contexts in certain contexts
|
2014-08-27 14:22:00 -06:00 |
|
Gregory Nutt
|
ad53cabf34
|
ADDRENV: Use a group flag to determine if there is an address environment (instead of the thread type)
|
2014-08-27 09:37:28 -06:00 |
|
Gregory Nutt
|
582800a04d
|
Add group_addrenv() which will be called during context switches in order to change address environments. Not yet hooked in
|
2014-08-26 14:57:05 -06:00 |
|
Gregory Nutt
|
af22f273d3
|
Add group_addrenv() which will be called during context switches in order to change address environments. Not yet hooked in
|
2014-08-26 14:54:39 -06:00 |
|
Gregory Nutt
|
1725946447
|
Misc changed to get the SAMA5 ELF configuration with address environments working
|
2014-08-25 13:28:13 -06:00 |
|
Gregory Nutt
|
e1799b0423
|
Cortex-A/SAMA5 address environment support is code complete (untested)
|
2014-08-25 11:18:32 -06:00 |
|
Gregory Nutt
|
1624e2fbcf
|
Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support
|
2014-08-24 06:42:11 -06:00 |
|
Gregory Nutt
|
e79d6e3c8b
|
A few fixes for compilation errors due to recent address environment fixes
|
2014-08-22 15:55:00 -06:00 |
|
Gregory Nutt
|
4e699b00de
|
Need to release the addess environment when the task group is released
|
2014-08-22 14:49:05 -06:00 |
|
Gregory Nutt
|
1d586e6136
|
An address environment is the property of a task group, not of a thread
|
2014-08-22 12:32:34 -06:00 |
|
Gregory Nutt
|
fd484c4de9
|
Add support for statically allocated watchdog timer structures
|
2014-08-22 08:46:34 -06:00 |
|
Gregory Nutt
|
ad9b3f8ab8
|
wdog.h does not contain any application interface, only internal OS interface. Further, it is non-standard. Move wdog.h from include/ to include/nuttx. For the same reason, move the description of the watchdog timer interfaces from the Users Guide to the Porting Guide.
|
2014-08-21 11:16:55 -06:00 |
|
Gregory Nutt
|
952d87587f
|
If we run out of pre-allocated watchdog times, the logic will allocate additional timers from the heap. A reserve of pre-allocated watchdog timers is maintained so that there will always be timers available for interrupt handlers.
|
2014-08-21 08:44:29 -06:00 |
|