Commit Graph

383 Commits

Author SHA1 Message Date
Gregory Nutt 936df1bcb5 Adds new OS internal functions nxsig_sleep() and nxsig_usleep. These differ from the standard sleep() and usleep() in that (1) they don't cause cancellation points, and (2) don't set the errno variable (if applicable). All calls to sleep() and usleep() changed to calls to nxsig_sleep() and nxsig_usleep().
Squashed commit of the following:

    Change all calls to usleep() in the OS proper to calls to nxsig_usleep()

    sched/signal:  Add a new OS internal function nxsig_usleep() that is functionally equivalent to usleep() but does not cause a cancellaption point and does not modify the errno variable.

    sched/signal:  Add a new OS internal function nxsig_sleep() that is functionally equivalent to sleep() but does not cause a cancellaption point.
2017-10-06 10:15:01 -06:00
Gregory Nutt 9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  That change was added because sem_wait() would sometimes cause cancellation points inappropriated.  But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.

    In the OS, all calls to sem_wait() changed to nxsem_wait().  nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.

    In all OS functions (not libraries), change sem_wait() to nxsem_wait().  This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.

    sched/semaphore:  Add the function nxsem_wait().  This is a new internal OS interface.  It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
2017-10-04 15:22:27 -06:00
Gregory Nutt 42a0796615 Squashed commit of the following:
sched/semaphore:  Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable.  Changed all references to sem_post in the OS to nxsem_post().

    sched/semaphore:  Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable.  Changed all references to sem_destroy() in the OS to nxsem_destroy().

    libc/semaphore and sched/semaphore:  Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable.  Changed all references to sem_setprotocol in the OS to nxsem_setprotocol().  sem_getprotocol() was not used in the OS
2017-10-03 15:35:24 -06:00
Gregory Nutt 83cdb0c552 Squashed commit of the following:
libc/semaphore:  Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable.  Changed all references to sem_getvalue in the OS to nxsem_getvalue().

    sched/semaphore:  Rename all internal private functions from sem_xyz to nxsem_xyz.  The sem_ prefix is (will be) reserved only for the application semaphore interfaces.

    libc/semaphore:  Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable.  Changed all references to sem_init in the OS to nxsem_init().

    sched/semaphore:  Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.

    sched/semaphoate:  Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -06:00
Gregory Nutt 2c2aa94b7d Squashed commit of the following:
net/: psock_recvfrom() is an internal interface and should not set the errno nor should it be a cancellation point.

    net/: psock_accept() is not a cancellation point.

    net/: psock_getsockopt() and psock_socket*9 are an internal interfaces and should not set the errno.

    net/: psock_getsockopt() is an internal interface and should not set the errno.

    net/: psock_listen() is an internal interface and should not set the errno.

    net/: psock_connect(( is an internal interface and should not set the errno nor should it be a cancellation point.

    net/: psock_bind() is an internal interface and should not set the errno.

    net/: psock_accept() is an internal interface and should not set the errno.
2017-09-30 08:18:08 -06:00
Gregory Nutt 44736b721c net/sockets: psock_send() is an internal OS interface an should not set the errno variable. 2017-09-29 17:48:15 -06:00
Gregory Nutt a0956c9e5b graphics/: Remove dangling space at the end of lines. 2017-06-28 13:28:52 -06:00
Gregory Nutt 0de294a586 Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they. 2017-05-11 13:35:56 -06:00
Gregory Nutt d5207efb5a Be consistent... Use Name: consistent in function headers vs Function: 2017-04-21 16:33:14 -06:00
Gregory Nutt b553704334 Update README; Remove comment blocks before empty sections. 2017-01-08 14:01:16 -06:00
Gregory Nutt 749eb6b7cd Update README; Remove comment blocks before empty sections. 2017-01-08 11:36:06 -06:00
Gregory Nutt f3ae51592c Update README; Remove comment blocks before empty sections. 2017-01-08 11:20:16 -06:00
Gregory Nutt 725ba1602a Font cache: misc fixes and improvements 2017-01-06 11:06:50 -06:00
Gregory Nutt 0b52e6f571 Font cache: Replace fixed-size array with variable size link list. 2017-01-06 09:07:25 -06:00
Gregory Nutt dc05af6436 Graphics: Initial separation of font cache from graphics/nxterm. Now in libnx/nxfronts 2017-01-05 18:36:29 -06:00
Gregory Nutt d91cf5736e With last changes the Tom Thumb 3x5 font is now 4x6 2017-01-04 10:31:53 -06:00
Alan Carvalho de Assis 6c826bb209 Add support for Tom Thumb small mono-space font 2017-01-03 11:11:47 -06:00
Gregory Nutt 86b5f3b9ed boardctl: Add new command to start the NX server as a kernel thread. Also refresh more configurations. 2016-12-01 15:05:57 -06:00
Gregory Nutt 6dda185e8a NX: Remove configuration CONFIG_NX_NXSTART. nx_start.c is now built unconditionally in multi-user mode. 2016-12-01 13:30:24 -06:00
Gregory Nutt 77a0b6c26a graphics/, libnx/: Disable priority inheritance on all semaphores used for signaling 2016-11-03 17:12:49 -06:00
Gregory Nutt 43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt d40a473f72 Without lowsyslog() *llwarn() is not useful. Eliminate and replace with *warn(). 2016-06-20 09:37:08 -06:00
Gregory Nutt 6d1cd731b5 Eliminate a warning 2016-06-17 08:43:22 -06:00
Gregory Nutt 0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 2016-06-16 12:33:32 -06:00
Gregory Nutt 4f97f15b5e graphics/, libc/: Change some err() ERRORS to warn() WARNINGS or info() 2016-06-12 11:11:57 -06:00
Gregory Nutt a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt 1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt 3a74a438d9 Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO 2016-06-11 11:50:18 -06:00
Gregory Nutt 422769e859 Update README. Improve some debug output. 2016-04-23 14:27:32 -06:00
Gregory Nutt d4ac277df8 Mostly costmetic updates to comments, README 2016-04-23 13:26:52 -06:00
Gregory Nutt b7940e9389 VNC: Fix some backward logic in a wait loop 2016-04-23 12:32:42 -06:00
Gregory Nutt 0d57612d13 VNC: Need to handle connection closed events 2016-04-23 10:57:28 -06:00
Gregory Nutt 47a33cbb64 VNC: Ignore client framebuffer updates if nothing has changed (we can does this because client requests incremental updates 2016-04-23 10:22:54 -06:00
Gregory Nutt e723fc7fd4 VNC: Add option to enable VNC server debug without GRAPHICS debug 2016-04-23 09:06:39 -06:00
Gregory Nutt 8c1534e3ed VNC: Finish initializing the VNC server once we have the NX handle 2016-04-22 13:39:35 -06:00
Gregory Nutt 47c2b3d4a7 VNC: Add default mouse/keyboard input handlers 2016-04-22 12:48:27 -06:00
Gregory Nutt 2a928cbdbe VNC: Verify RGB8 operation; samv71-xult: VNC configuration now uses RGB8 by defualt 2016-04-22 08:57:42 -06:00
Gregory Nutt 1e7b8b80ac Add a mechanism to get remote keyboard and mouse inputs 2016-04-21 14:52:25 -06:00
Gregory Nutt 05f720f838 VNC: Flush the update queue whenever the client asks for a whole screen update 2016-04-21 12:38:36 -06:00
Gregory Nutt be1677ba25 VNC: Client may request pixel data in either big- or little- endian order 2016-04-21 12:18:35 -06:00
Gregory Nutt 98e4de73e2 VNC: Discard previously queued updates if the client requesta a whole screen update 2016-04-21 09:47:26 -06:00
Gregory Nutt eb8c7f1641 VNC: Correct pixel width in RRE encoding 2016-04-21 08:16:33 -06:00
Gregory Nutt 79e577eae1 VNC: Add support for (1) an 8-bit local frame buffer format and (2) a configurable server name 2016-04-20 17:47:47 -06:00
Gregory Nutt f8604d11a9 VNC: Add some very basic RRE encodings 2016-04-20 17:01:48 -06:00
Gregory Nutt cf6e791134 VNC: Repartition some function in preparation for supporting other encoding types 2016-04-20 14:05:32 -06:00
Gregory Nutt 363169339b VNC: Fix error in message header size calculation; Add logic to try copy with pixel format changes. 2016-04-20 13:10:09 -06:00
Gregory Nutt 7134652fea VNC: Fixes from debug. One issues is that VNC client is changing color formats after starting. That is now handled. 2016-04-20 09:47:02 -06:00
Gregory Nutt 65f21d0edb VNC: More updates from testing. There are issues with high rate, large TCP transfers. 2016-04-19 15:39:58 -06:00