Commit Graph

61 Commits

Author SHA1 Message Date
Nathan Hartman
f13ee2848d include/nuttx/clock.h: Fix wrong comment
include/nuttx/clock.h:

    * USEC_PER_TICK: The docstring for this define mistakenly said
      that the default value of USEC_PER_TICK, 10000, corresponded
      to 100 KHz. However, it is actually 100 Hz. Corrected the
      comment. No functional changes.
2020-11-22 18:33:50 -08:00
GAEHWILER Reto
83745652c4 TCP-stack fix for stalled tcp sockets due to broken keepalive
Fixes an issue where tcp sockets with activated keepalives stalled and
were not properly closed. Poll would not indicate a POLLHUP and therefore
locks down the application.

* tcp_conn_s.tcp_conn_s & tcp_conn_s.keepintvl changed to uint32_t
  According RFC1122 keepidle MUST have a default of 2 hours.
2020-10-27 11:21:56 -07:00
Xiang Xiao
517974787f Rename clock_systime[r|spec] to clock_systime_[ticks|timespec]
follow up the new naming convention:
https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-10 14:35:50 -06:00
Gregory Nutt
153eee6de2 Make more OS internal names consistent
1. Internal scheduler functions should begin with nxsched_, not sched_
2. Follow the consistent naming patter of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions

    # clock_systimer -> clock_systime_tick
    # clock_systimespec -> clock_systime_timespec
    sched_oneshot_extclk -> nxsched_oneshot_extclk
    sched_period_extclk -> nxsched_period_extclk
    # nxsem_setprotocol -> nxsem_set_protocol
    # nxsem_getprotocol -> nxsem_get_protocol
    # nxsem_getvalue -> nxsem_get_value
    nxsem_initholders -> nxsem_initialize_holders
    nxsem_addholder -> nxsem_add_holder
    nxsem_addholder_tcb -> nxsem_add_holder_tcb
    nxsem_boostpriority -> nxsem_boost_priority
    nxsem_releaseholder -> nxsem_release_holder
    nxsem_restorebaseprio -> nxsem_restore_baseprio

Some planned name changed were skipped for now because they effect too many files (and would require many hours of coding style fixups).
2020-05-10 22:47:07 +08:00
Xiang Xiao
f8a809eb5b Fix nxstyle issue
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 10:43:47 -03:00
Xiang Xiao
eca7059785 Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 10:43:47 -03:00
Xiang Xiao
cde88cabcc Run codespell -w with the latest dictonary again
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
Gregory Nutt
f5e0bb2d30 Run all files modified by PR274 through nxstyle. 2020-02-15 07:17:22 -06:00
Xiang Xiao
20a9a62fdf Make compare_timespec public so timer driver could reuse it 2020-02-15 07:17:07 -06:00
Juha Niskanen
fd462d5ce2 sched/pthread, Documentation: fix pthread_key_delete, pthread_self and pthread_yield documentation and some comments. 2019-10-17 11:04:17 -06:00
Anthony Merlino
e2ac83dff0 Merged in antmerlino/nuttx/clock_doc (pull request #982)
clock.h: Copies in missing function documentation from C file.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-10 17:53:48 +00:00
Gregory Nutt
b290160b3b Rename sched_process_timer to nxsched_process_timer. That is the appropriate name for an internal sched/ function (still many named incorrectly). 2019-03-20 19:27:40 -06:00
Xiang Xiao
46bd8798c5 ched/clock/: Remove g_monotonic_basetime and g_clock_monotonic_time since we don't need ensure monotonic time start from zero as state here: http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html 2018-11-12 06:50:37 -06:00
Xiang Xiao
a82f073892 Fixes warnings from header files:
include/nuttx/clock.h:  Fix uptime wrong if DEBUG_FEATURES and SCHED_TICKLESS enabled
include/nuttx/arch.h: fix CONFIG_ARCH_INTERRUPTSTACK not defined  warning
include/nuttx/audio/audio_i2s.h:  Fix warning: struct i2s_dev_s declared inside parameter list
2018-11-09 09:10:28 -06:00
Xiang Xiao
71ad1993f2 Move clock_timespec_[add|subtract] to include/nuttx/clock.h 2018-08-27 06:04:04 -06:00
Xiang Xiao
3af35699b9 include/nuttx/clock.h, sched/sched: Support the CPU load measurement using timer_lowerhalf_s interface 2018-08-24 10:10:57 -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
06e7533bb0 Update some comments. 2018-03-14 08:17:50 -06:00
Gregory Nutt
b54ffe858a Standardization of some function headers. 2018-03-13 09:52:27 -06:00
Gregory Nutt
e6e7dae05b sched/clock: Fix a recently introduced name collision 2018-03-12 13:36:06 -06:00
Gregory Nutt
251924a734 Squashed commit of the following:
net/tcp:  Add logic to send probes when SO_KEEPALIVE is enabled.
    net/tcp:  TCP socket should not have to be connected to configure KeepAlive.
    net/: Add a separate configuration to enable/disable KEEPALIVE socket options.
    net/tcp: Arguments to TCP keep-alive timing functions probably should be struct timeval as are the times for other time-related socket options.
    net/tcp:  Fix a backward conditional
    net/tcp:  Add some more checks and debug output to TCP-protocol socket options.
    net/tcp:  Cosmetic changes to some alignment.
    net/:  Adds socket options needed to manage TCP-keepalive and TCP state machine logic to detect if that the remote peer is alive.  Still missing the timer poll logic to send the keep-alive probes and the state machine logic to respond to probes.
2018-03-12 10:59:46 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Juha Niskanen
cc7af2b0d0 procfs: Fix uptime being close to maximum 32-bit value in certain config 2017-11-10 09:01:39 -06:00
Gregory Nutt
d5207efb5a Be consistent... Use Name: consistent in function headers vs Function: 2017-04-21 16:33:14 -06:00
Jussi Kivilinna
c57d49f420 clock: Add new type ssystime_t for relative 64-bit ticks, change ticks<->time conversion functions to use ssystime_t 2017-04-21 08:51:31 -06:00
Jussi Kivilinna
325ba1a803 clock: add clock_resynchronize and use subseconds RTC
Add clock_resynchronize for better synchronization of CLOCK_REALTIME and CLOCK_MONOTONIC to match RTC after resume from low-power state.

Add up_rtc_getdatetime_with_subseconds under CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and resynchronizing) system clock with subseconds accuracy RTC.
2017-04-21 08:45:57 -06:00
Gregory Nutt
300361539a sched/sched_cpuload_oneshot: Use the oneshot timer with optional entropy to measuer cPU load if so configured. 2016-08-20 12:47:07 -06:00
Gregory Nutt
469aff0584 Fix names of pre-processor variables used in header file idempotence 2016-08-06 19:21:42 -06:00
Stefan Kolb
fde277a388 Missing parentheses in MSEC2TICK macro can lead to incorrect conversions 2016-03-09 07:24:16 -06:00
Gregory Nutt
dea24c503a Networking: Remove the HSEC argument from devif_timer. 2016-02-03 12:12:41 -06:00
Gregory Nutt
84d4cb007b clock_systimer: 64-bit timer accesses are not atomic. Noted by Freddie Chopin. 2016-01-22 12:24:36 -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
Dimitry Kloper
06438b0dcc Fix 64-bit clock-related constant value evaluation for AVR compiler
This may be specific for Atmel AVR8 toolchain compiler.
The problem is that despite of being 8-bit architecture
avr-gcc supports uint64_t, but the following code

uint64_t value = 10000 * 1000;

produces a wrong negative value in the final code (tested
both with and without optimization).

The work-around is simple:

uint64_t value = 10000 * 1000L;

The code is a reduced part from sched/signal/sig_timedwait.c where
waitticks64 is calculated using NSEC_PER_TICK. This one is defined
as USEC_PER_TICK * NSEC_PER_USEC which leads to the example above.
2016-01-05 12:02:02 -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
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
fe35751ec2 g_system_timer must be handler in a special way if there are external modules 2014-08-28 17:02:53 -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
6e0acd7cd4 WM8904: Don't use MSEC2TICK in timeout calculation 2014-08-08 11:02:45 -06:00
Gregory Nutt
5ee57bda59 Some final tickless OS bugfixes. No longer EXPERIMENTAL. Update some comments 2014-08-07 19:11:22 -06:00
Gregory Nutt
c9661ad5a7 Change all time conversions. Yech. New timer units in microseconds breaks all existing logic that used milliseconds in the conversions. Something likely got broken doing this, probably because I confused a MSEC2TICK conversion with a TICK2MSEC conversion. Also, the tickless OS no appears fully functional and passes the OS test on the simulator with no errors 2014-08-07 18:00:38 -06:00
Gregory Nutt
0aa7209765 Change CONFIG_MSEC_PER_TICK to CONFIG_USEC_PER_TICK. This gives more options for system timers in general, but more importantly, let's us realize higher resolution for the case of CONFIG_SCHED_TICKLESS=y -- of course, at the risk of some new interger overvflow problems 2014-08-07 13:42:47 -06:00
Gregory Nutt
caba61999a Remove CONFIG_DISABLE_CLOCK 2014-08-07 12:35:24 -06:00
Gregory Nutt
0452b1555b if CONFIG_SCHED_TICKLESS is defined, then the global variable g_system_timer does not exist 2014-08-06 18:26:16 -06:00
Gregory Nutt
cf4a362ab5 CPU load calculations now available for all threads. Available in /proc/pid/loadavg 2014-02-23 10:55:01 -06:00
Gregory Nutt
59769d44f1 Add logic to meaure and calculate the CPU load percentage. From David Alessio 2014-02-22 15:20:12 -06:00
patacongo
869c3fa50b Fixes for l3s, USB composite, nfsmount, apps context build problems
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5458 42af7a65-404d-4744-a932-0658087f49c3
2012-12-24 17:49:58 +00:00
patacongo
f2df8af310 Add clock_synchronize() which may be used to re-synchonize the system time with an RTC after recovering from a low power state
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4503 42af7a65-404d-4744-a932-0658087f49c3
2012-03-22 14:52:46 +00:00
patacongo
d8c4138e74 Remove support for UTC time; add support for 64-bit time
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4006 42af7a65-404d-4744-a932-0658087f49c3
2011-10-02 14:16:30 +00:00