Gregory Nutt
f090bbba57
syscall/: Add support for getpeername() and get_sockname() system calls.
2018-07-19 07:30:01 -06:00
Gregory Nutt
872a11b4a0
Correct some errors found in build testing.
2018-06-25 14:16:19 -06:00
Gregory Nutt
c65e1aa3df
Squashed commit of the following:
...
syscalls/: Add syscall support for if_nametoindex() and if_indextoname()
net/: Update some comments.
2018-06-25 12:41:28 -06:00
Gregory Nutt
8fca244f36
syscall: clock_systimer() is no longer a system call. It has been replaced with the equivalent, standard interface clock() as the system call.
...
sched/clock: Move the implementation of clock() from libs/libc/time to sched/clock. This is necessary because it calls the (now) internal OS function clock_systimer. clock() is now accessed only via a system call in certain configuratins.
libs/libc/wqueue: Replace calls to clock_systimer() with calls to the equivalent clock().
2018-06-16 12:50:28 -06:00
Gregory Nutt
8fdbb1e0a4
Elimate use of the non-standard type systime_t and replace it the equivalent, standard type clock_t
...
Squashed commit of the following:
sched: Rename all use of system_t to clock_t.
syscall: Rename all use of system_t to clock_t.
net: Rename all use of system_t to clock_t.
libs: Rename all use of system_t to clock_t.
fs: Rename all use of system_t to clock_t.
drivers: Rename all use of system_t to clock_t.
arch: Rename all use of system_t to clock_t.
include: Remove definition of systime_t; rename all use of system_t to clock_t.
2018-06-16 12:16:13 -06:00
Gregory Nutt
de6b13b3ab
Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and debug wrappers -- does not return a value. Rename _vsyslog to nx_vsyslog. Use internal nx_vsyslog in the few cases where a return value is required.
2018-03-04 08:07:07 -06:00
Gregory Nutt
e4652bd3dc
Squashed commit of the following:
...
fs: Add truncate() support for userfs
fs/unionfs: Add truncate() support to the unionfs
fs/tmpfs: Add ftruncate() support to tmpfs
syscall/: Add system call support for ftruncate()
net/route: Adding ftruncate() support eliminates an issue in file-based routing table management.
fs: Add basic framework to support truncate() and ftruncate(). The infrastructure is complete. Now, however, the actual implementation of ftruncate() will have to be done for each file system.
2018-01-03 16:03:56 -06:00
Gregory Nutt
35ee844590
sched/signal/sig_nanosleep.c and libc/time/lib_nanosleep.c: Implement clock_nanosleep(). nanosleep() is now reduced to a libc wrapper around clock_nanosleep().
2017-11-11 17:44:59 -06:00
Gregory Nutt
5b04c25dcd
drivers/serial/tcdrain: tcdrain() was recently added to the NuttX C library. But there is a problem. The specification of tcdrain() requires that it be a cancellation point. In order to do this, tcdrain was moved from the C library into the OS and the addition cancellation point hooks were added. In non-FLAT builds, access via system calls is also now supported.
2017-10-06 10:55:36 -06:00
Gregory Nutt
8e966546c1
syscall/: The non-standard interface exec() is now enshrined as a official NuttX API. I really dislike doing this but I think that this is probably the only want to load programs in the protected mode. It is currently used by some example code under apps/ that generate their own symbol tables for linking. Other file execution APIs relay on a symbol table provided by the OS. In the protected mode, the OS cannot provide any meaning symbol table for execution of code in the user-space blob so that is they exec() is really needed in that build case. And, finally, the interface is completely useless and will not be supported in the KERNEL build mode where the contrary is true: An application process cannot provide any meaning symbolic information for use in linking a different process.
2017-10-03 07:09:35 -06:00
Gregory Nutt
23a6ff5846
pthreads: Move pthread_barrier_init, pthread_barrier_destroy, and pthread_barrier_wait from sched/pthreads to libc/pthreads. This just coordinate other OS interface calls but are not a fundamental OS interfaces and, hence, do not belong within the OS.
2017-06-14 07:59:54 -06:00
Gregory Nutt
ae168bffa0
pthreads: Move pthread_cond_init and pthread_cond_destory from sched/pthreads to libc/pthreads. This just coordinate other OS interface calls but are not a fundamental OS interfaces and, hence, do not belong within the OS.
2017-06-14 07:48:45 -06:00
Gregory Nutt
557fd6504f
pthreads: Move pthread_once from sched/pthreads to libc/pthreads. pthread_once just coordinates other OS interface calls but is not a fundamental OS interface and, hence, does not belong within the OS.
2017-06-14 07:31:10 -06:00
Gregory Nutt
8ae5450268
pthreads: Move pthread_yield from sched/pthreads to libc/pthreads. it is a simple wrapper for sched_yield and does not belong within the OS.
2017-06-14 07:31:10 -06:00
Jussi Kivilinna
dffb8a67e3
Add entropy pool and strong random number generator
...
Entropy pool gathers environmental noise from device drivers, user-space, etc., and returns good random numbers, suitable for cryptographic use. Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm for CSPRNG output.
Patch also adds /dev/urandom support for using entropy pool RNG and new 'getrandom' system call for getting randomness without file-descriptor usage (thus avoiding file-descriptor exhaustion attacks). The 'getrandom' interface is similar as 'getentropy' and 'getrandom' available on OpenBSD and Linux respectively.
2017-03-30 07:38:37 -06:00
Gregory Nutt
7dea99ff9d
Parts of last syscall commit that were omitted.
2017-03-27 09:38:27 -06:00
Gregory Nutt
74160ccc4e
Add syscall support for fstatfs.
2017-02-17 08:46:07 -06:00
Gregory Nutt
e7404280e8
fstat(): Add syscall support
2017-02-14 10:44:01 -06:00
Gregory Nutt
4417e74977
Soft links: Add an (untested) implementation of readlink()
2017-02-03 13:57:12 -06:00
Gregory Nutt
b39d962021
Soft links: Update Documentation, rename file, add system calls
2017-02-02 17:11:08 -06:00
Gregory Nutt
34e539926a
Syscalls: Remove modsym() syscall. There is no reason why appication code could ever use symbolic information from a symbol within a kernel module. The modsym() interface is only meaningful within the kernel.
2017-01-28 11:03:06 -06:00
Gregory Nutt
ec755a4091
SYSCALLS: Correct a bad function prototype generated in PROTECTED mode with kernel modules enabled.
2017-01-23 14:04:32 -06:00
Gregory Nutt
4574a1ca42
Modules: Extend the module interface so that we can access symbols exported by the module.
2017-01-22 14:26:22 -06:00
Gregory Nutt
d648f9c8b4
Add task_testcancel()
2016-12-10 16:34:14 -06:00
Gregory Nutt
f132960789
Add task_setcanceltype()
2016-12-10 16:06:14 -06:00
Gregory Nutt
5fb207eb36
Add task_setcancelstate()
2016-12-10 15:16:46 -06:00
Gregory Nutt
e62b3bccd3
pthread_setcanceltype() and pthread_testcancel() do not have to be system calls if cancellation points are not enabled.
2016-12-10 07:40:48 -06:00
Gregory Nutt
1b2135a90a
Add pthread_setcanceltype() and pthread_testcancel() as system calls.
2016-12-10 07:12:11 -06:00
Gregory Nutt
a1fbc2ad0d
pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop()
2016-12-08 09:27:13 -06:00
Gregory Nutt
73fc186beb
sem_setprotocol: Handle a case of missing proxy for sem_setprotocol. Reorder so that (1) this error is avoided, and (2) >No proxy is needed if priority inheritance is not enabled.
2016-11-03 18:51:38 -06:00
Gregory Nutt
4c8ec0d2ca
include/nuttx/semaphore.h: Fix broken macros
2016-11-03 12:49:44 -06:00
Gregory Nutt
d5b4d848d3
Move protoypes for the non-standard include/semaphore.h file to the non-standard include/nuttx/semaphore.h with the other non-standard semaphore interfaces.
2016-11-02 14:43:03 -06:00
Gregory Nutt
b738a646ad
sem_getprotocol() can be in C library
2016-11-02 09:29:16 -06:00
Gregory Nutt
92d3022411
Add pthread_mutexattr_get/set_protocol and non-standard sem_get/set_protocol. These may use to enable or disable priority inheritance on a single semaphore.
2016-11-02 09:05:18 -06:00
Gregory Nutt
309480d0f9
Merge branch 'timekeeping' of bitbucket.org:nuttx/nuttx
2016-07-28 09:34:00 -06:00
Gregory Nutt
4b4dbc79a2
Move driver related prototypes out of include/nuttx/fs/fs.h and into new include/drivers/drivers.h
2016-07-20 13:15:37 -06:00
Gregory Nutt
e73e82a923
Move prototypes of mkfifo2() from sys/stat.h and pipe2() from unistd.h. They are non-standard and should not be in such a public place. They are not in include/nuttx/fs/fs.h (which isn't a great place either).
2016-07-20 11:57:18 -06:00
Gregory Nutt
b28fa8a609
Move pipe() and mkpipe() to nuttx/libc. Change syscalls to pipe2() and mkfifo2()
2016-07-19 14:15:26 -06:00
Gregory Nutt
246773faa7
Rename CONFIG_SCHED_TIMEKEEPING to CONFIG_CLOCK_TIMEKEEPING. That is a better compartmentalized name.
2016-07-11 06:54:02 -06:00
Gregory Nutt
f47b69e1f0
Add support for adjtime system call
2016-07-10 16:55:32 -06:00
Gregory Nutt
c373b45b21
_vsyslog PROXY: Wrong header file
2016-06-21 16:53:54 -06:00
Gregory Nutt
505ca542e8
Remove some last traces of lowvsyslog that were missed; Add a SYSLOG emergency channel for handling assertion output more cleanly
2016-06-20 16:11:50 -06:00
Gregory Nutt
7dd66a4620
Need to pass va_list as a reference to vsyslog. This is because va_list is a structure in some compilers and passing of structures in the NuttX sycalls does not work.
2016-06-19 14:50:00 -06:00
Gregory Nutt
34f776dce9
Move the OS intensive part of vsyslog and vlowsyslog to drivers/syslog/vsyslog.c and vlowsyslog.c. Also move lib_syslogstrem to drivers/syslog/syslogstream.c
2016-06-19 07:56:24 -06:00
Gregory Nutt
f5e5908a70
vsyslog is now a system call
2016-06-19 07:03:44 -06:00
Gregory Nutt
5a590e99b9
Add SYSCALLS for pthread_setaffinity() and pthread_getaffinity()
2016-02-19 18:13:06 -06:00
Gregory Nutt
032ad1b70b
Remove clock_systimer32 and clock_systimer64. There is now only clock_systimer
2016-01-21 16:49:24 -06:00
Gregory Nutt
f348e68069
Update to use 64-bit timer when available
2016-01-21 11:54:26 -06:00
Gregory Nutt
435d7597cf
sycalls: Fix some missing quotes in the syscall CSV file
2015-12-15 17:49:07 -06:00
Gregory Nutt
3beff9568e
Module: Fix up system calls for changes to insmod prototype
2015-12-13 08:12:28 -06:00
Gregory Nutt
795ddd7e80
OS modules: Add basic procfs support. A module registry that will eventually be used to support lsmod
2015-12-12 17:42:25 -06:00
Gregory Nutt
303123deb9
Add syscall support for insmod and rmmod
2015-12-12 11:11:09 -06:00
Pavel Pisa
9ab3f03153
Define some symbol export conditions, correct errno and add sleep and usleep. From Pavel Pisa
2015-08-23 09:05:40 -06:00
Gregory Nutt
ed004be6d0
Clean up some syscall logic that has changed due to revised netdb configuration
2015-07-10 15:41:20 -06:00
Gregory Nutt
c19fd13291
gethostname() should not be the system call, uname() should and gethostname should get the host name from uname
2015-07-05 10:41:58 -06:00
Gregory Nutt
f31a96cfbf
Add system calls for gethostname and sethostname
2015-07-05 08:42:32 -06:00
Gregory Nutt
d8db596b3b
POSIX message queues: Move mq_setattr() and mq_getattr() from nuttx/libc/mqueue to nuttx/sched/mqueue. Also add sysyscall support for mq_setattr() and mq_getattr(). This is necessary in protected and kernel builds because in those cases the message queue structure is protect and cannot be accessed directly from user mode code. Noted by Jouko Holopainen.
2015-06-03 09:24:17 -06:00
Gregory Nutt
ca29c652c3
Remove duplicate prototype of statfs from stdio.h. Belongs in sys/statfs.h only. Note by Michael Hope
2015-05-12 07:00:11 -06:00
Gregory Nutt
162f1d5ee2
Last changes to message queue prototypes did not make it into call gate logic.
2015-04-09 10:37:45 -06:00
Gregory Nutt
b4b40d338a
boardctl(): Add a new non-standard OS interface. This is similar to a driver IOCTL call. But this is an IOCTL call directly on the board logic. This function will eventually replace all of the ad hoc OS interfaces that are current used to perform application specific intialiation and application driver test confifuration. It essentially formalizes and institutionalizes these rogue interface in to at least a single crazy call.
2015-03-31 11:25:52 -06:00
Gregory Nutt
f932b26db1
Add umount2(). umount() is now a macro that just calls umount2() with flags = 0.
2015-03-14 16:48:45 -06:00
Gregory Nutt
147042218b
gettimeofday() and settimeofday(): Move gittimeofdady() from sched/clock to libc/time. All remove gettimeofday() from NuttX system calls. It is only a wrapper around clock_settime() and does not need a trap. gettimeofday() is no longer tried as a core OS interface.
...
gettimeofday has been decremented in POSIX 2008. settimeofday() was never part of POSIX, but I decided to add it to libc as well just for symmetry.
2015-02-12 11:10:46 -06:00
Gregory Nutt
e31d5125ae
Add support for a variadic ioctl() function. The ioctl() interface is a non-standard, Unix interface. NuttX has always used the older, three-parameter version. Most contemporary systems now, however, use a variadic form of the ioctl() function. Added an option to insert a shim layer to adapt the three-parameter ioctl() to use the variadic interface form. Internally, the ioctl handling is the same three-parameter logic. The only real complexity to the shim is in how the system calls must be handled.
2014-11-29 10:53:22 -06:00
Gregory Nutt
d2c8e13ed5
Backing out some logic: Remove syslog functions from syscalls
2014-10-09 06:58:23 -06:00
Gregory Nutt
bbc658930a
Passing va_list in syscall does not work. Temporarily moved syslog and lowsyslog into kernel code and access via a system call. Need to revisit. Will probably need to move all of syslog back from fs/syslog to libc/syslog
2014-10-08 20:12:52 -06:00
Gregory Nutt
323084f32f
Add syslog system calls
2014-10-08 19:37:10 -06:00
Gregory Nutt
5201acb71c
Add system calls for AIO kernel functions
2014-10-05 15:59:02 -06:00
Gregory Nutt
032fbb7ace
Add pread(0 and pwrite() system calls
2014-10-04 07:31:45 -06:00
Gregory Nutt
242b34cf46
Create a build structure that will (eventually) support using the VFS to manage named semaphores
2014-09-28 12:19:01 -06:00
Gregory Nutt
29075cf666
Add system calls for shared memory interfaces
2014-09-22 15:24:09 -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
31824f5b53
execl() is not a system interface. It belongs in libc and should not have a system call associated with it.
2014-09-15 10:17:04 -06:00
Gregory Nutt
282fe4aa10
exevc, execvl, posix_spawn, and posix_spawnp were not properly integrated as system calls.
2014-09-12 12:47:20 -06:00
Gregory Nutt
8f895baa9e
pthread prototype changes must be reflected in system calls as well
2014-09-08 06:45:04 -06:00
Gregory Nutt
8b082a167b
Add SYSCALL support for pgalloc()
2014-09-02 08:29:44 -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
a5cfd5deba
clock_systimer needs the same fix as fore get/set_errno when used with system calls
2014-08-30 13:26:45 -06:00
Gregory Nutt
0c7e97658e
Yet more issues with errno access via syscalls fixed
2014-08-30 08:43:10 -06:00
Gregory Nutt
a2463148fc
Can't used task_create() if address environments enabled
2014-08-27 14:19:41 -06:00
Gregory Nutt
caba61999a
Remove CONFIG_DISABLE_CLOCK
2014-08-07 12:35:24 -06:00
Gregory Nutt
808ebb18a9
Minor clean-up of typing from last commit
2013-12-29 08:19:02 -06:00
Gregory Nutt
715177d861
Add sem_timedwait to syscalls
2013-12-28 12:04:39 -06:00
Gregory Nutt
7aff059fd0
Move sleep() and usleep() from sched/ to libc/unistd/. These functions now are simple wrappers for nanosleep(). Remove sleep() and usleep() from system calls; add nanosleep() to system calls
2013-12-13 07:57:13 -06:00
Gregory Nutt
41f0c86cad
Optimized sendfile() from Max Holtzberg
2013-09-28 14:47:49 -06:00
Gregory Nutt
113a696f31
Fix compile errors when the on_exit() interface is enabled in the kernel build. From Ken Pettit
2013-05-17 11:21:29 -06:00
Gregory Nutt
86b815373a
Remove up_assert_code
2013-04-25 15:19:59 -06:00
patacongo
466efbd35c
Fix some bad syscall dispatching log. This change is not testable until these is a tested NuttX kernel build.
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5713 42af7a65-404d-4744-a932-0658087f49c3
2013-03-06 19:56:32 +00:00
patacongo
6feabf0fee
Implement user-mode work queues
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5712 42af7a65-404d-4744-a932-0658087f49c3
2013-03-06 00:02:07 +00:00
patacongo
b48009644f
Rename _TCB to struct tcb_s
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5610 42af7a65-404d-4744-a932-0658087f49c3
2013-02-04 18:46:28 +00:00
patacongo
329328e5df
New interface task_spawn(); exec_builtin() now uses task_spawn(); All argv types should be char * const * not const char **
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5598 42af7a65-404d-4744-a932-0658087f49c3
2013-02-02 19:31:30 +00:00
patacongo
3888a00d2d
Add internal API task_reparent(), used in posix_spawn(). Move libc/spawn/lib_ps.c to sched/task_posixspawn.c; Move libc/spawn/spawn.h to include/nuttx/spawn.h
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5531 42af7a65-404d-4744-a932-0658087f49c3
2013-01-18 01:52:42 +00:00
patacongo
c18b47aafb
More patches/bugfixes from Kate
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5056 42af7a65-404d-4744-a932-0658087f49c3
2012-08-26 23:29:37 +00:00
patacongo
56580875ab
atexit() and on_exit() may now be configured to support multiple exit callbacks
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4995 42af7a65-404d-4744-a932-0658087f49c3
2012-08-01 17:47:54 +00:00
patacongo
97301a8aed
Add interfaces to support getting/setting of thread/task names
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4658 42af7a65-404d-4744-a932-0658087f49c3
2012-04-26 15:00:35 +00:00
patacongo
2fe4ad52f8
Move file-system header files to include/nuttx/fs
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4499 42af7a65-404d-4744-a932-0658087f49c3
2012-03-21 18:01:07 +00:00
patacongo
93be5f368b
THTTPD works on LPCXpresso
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3514 42af7a65-404d-4744-a932-0658087f49c3
2011-04-16 15:43:39 +00:00
patacongo
32e6941ed7
Add time and uptime
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3506 42af7a65-404d-4744-a932-0658087f49c3
2011-04-15 14:57:53 +00:00
patacongo
10538a3f2e
Macro clock_systimer replaces direct access to g_system_timer variable
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3500 42af7a65-404d-4744-a932-0658087f49c3
2011-04-13 21:44:24 +00:00
patacongo
c80fb6cbcf
LPCXpression console on UART3
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3497 42af7a65-404d-4744-a932-0658087f49c3
2011-04-13 03:12:51 +00:00
patacongo
12afb230bf
Fixes for kernel stub builds
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3473 42af7a65-404d-4744-a932-0658087f49c3
2011-04-06 16:40:47 +00:00