Commit Graph

646 Commits

Author SHA1 Message Date
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
Gregory Nutt
27c48a383e Don't do 64-bit calculations if accuracy not achievable; Fix compile error in high res RTC mode 2014-08-15 17:48:07 -06:00
Gregory Nutt
eed1d6c619 When reading the system timer, don't read a struct timespec, convert it to a fake tick count, then back to a timespec. Remove CLOCK_ACTIVETIME.. it is non-standard, unused, and gets in the way of changes like this 2014-08-15 03:55:41 -06:00
Gregory Nutt
2bc07a03ae Correct release notes, updat changelog, fix some conditional compilation 2014-08-15 06:56:42 -06:00
Gregory Nutt
569a0815ca Updated comments 2014-08-12 13:50:18 -06:00
Gregory Nutt
6546fa39c7 Tickless Stuff: Back out the risky timer operations when the ready-to-run list is modified. That is unsafe. An ugly workaround is just to keep an interval timer going all of the time with a minimum duration equal to the timeslice interval. 2014-08-12 11:12:00 -06:00
Gregory Nutt
686e5d7e3d Tickless: If using an ALARM, then really should report time of expiration 2014-08-12 10:00:32 -06:00
Gregory Nutt
66803d0db6 Define interfaces to use an alarm instead of an interval timer with the tickless option 2014-08-12 07:28:41 -06:00
Gregory Nutt
e1fc925705 Minor update to handling of timeslick delay on tast switches 2014-08-11 15:07:15 -06:00
Gregory Nutt
56196ecea1 Fix a computation error in the fix for the last computational error 2014-08-11 12:07:49 -06:00
Gregory Nutt
b4bbe354fd Fix inaccurate time conversion. Remove MSEC_PER_TICK and convert uint32_t to uin64_t. 2014-08-11 11:14:40 -06:00
Gregory Nutt
649ef76f71 Timers: In Tickless mode, need to stop the interval timer before inserted a new delay into the timer list. Otherwise, the time is incorrect on the first entry of the list 2014-08-11 08:25:25 -06:00
Gregory Nutt
f2058fa271 Comment out reassessment of timer in the middle of context switches. Need to revisit 2014-08-11 07:05:47 -06:00
Gregory Nutt
6bd52bce06 Tickless OS: Correct a bug: logic to detect changes in head of timer list was wrong. 2014-08-10 13:12:18 -06:00
Gregory Nutt
e1769b22f1 Remove os_internal.h it has been replace by several new header files under sched/. There have been some sneak inclusion paths via os_internal.h, so expect a few compilation errors for some architectures 2014-08-08 18:39:28 -06:00
Gregory Nutt
0be5f2ca81 Move exit.c to task/exit.c 2014-08-08 18:38:04 -06:00
Gregory Nutt
d798dd37a7 Replace os_internal.h with sched/sched.h in files that actually reference something in sched.h 2014-08-08 17:53:55 -06:00
Gregory Nutt
1f28365f55 Part of the last incomplete change 2014-08-08 17:45:54 -06:00
Gregory Nutt
ccf4ed2148 Partial (non-working) checked in before the big, risky automated change 2014-08-08 17:29:44 -06:00
Gregory Nutt
224ee05957 Move a few files in sched/ that did not seem to have a home to sched/signal and sched/task 2014-08-08 16:57:47 -06:00
Gregory Nutt
23a334c066 Move task control files from sched/ to sched/task 2014-08-08 16:44:08 -06:00
Gregory Nutt
6683d749ac Move errno related files from sched/ to sched/errno 2014-08-08 15:52:55 -06:00
Gregory Nutt
9afca906eb Move initialization functions from sched/ to sched/init 2014-08-08 15:30:59 -06:00