Commit graph

15 commits

Author SHA1 Message Date
Allan Stephens
60f6a74efe Eliminate non-standard NULL definitions
Revises kernel so that it uses the standard NULL symbol defined
for C99, rather than having its own custom symbol.

Change-Id: I74342f192e95899a83db879e8b1c8fe89ac8b92d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:14 -05:00
Allan Stephens
11dcaf2ae4 Relocate declaration of kernel_version_get()
Now located with the other public APIs related to kernel versioning.

Change-Id: I60e0111d696b3a4f2f56b7d2021a391b6b00432e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:13 -05:00
Allan Stephens
a5e40e7247 Split off atomic APIs from main nanokernel include file
The atomic APIs are not really tied to nanokernel-specific
capabilities, and can be used by anyone at anytime -- even
during system initialization!

Change-Id: I427954029b4b465127cb5b4b642c2f9968c17d5a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:13 -05:00
Dan Kalowsky
c02dd34277 Renaming include/nanokernel to include/arch
Renaming the directory include/nanokernel to be include/arch, which
better reflects the real nature of the directory and the contents
inside.

Change-Id: I2bc33ebc6715e2f0403227a558279fdf52398ade
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:14:12 -05:00
Dmitriy Korovkin
ec8a461bfb Introduce public APIs for random number generation
Convert the existing non-public random number generation APIs
into public APIs (i.e. sys_rand32_init and sys_rand32_get).

Change-Id: Id93e81e351a66d02c08cf3f5d2dd54a3b4b213c5
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:14:12 -05:00
Peter Mitsis
18fa789ca0 Rework constructor macros
Routines are no longer flagged as constructors using the FUNC_CONSTRUCT(level)
macro.  This is because some compilers do not support constructor levels.

To indicate that a routine should be a constructor, the SYS_PREKERNEL_INIT()
macro should be used AFTER the definition of the routine.  For example ...

void my_library_init(void)
{
    ...
}

SYS_PREKERNEL_INIT(my_library_init, 500);

The first parameter to SYS_PREKERNEL_INIT() is the name of the routine.  The
second is the priority level (000...999).  The lower the number, the higher
the priority.  NOTE: It is important that all three digits are specified;
otherwise the linker may put the constructors in an undesired order.

Change-Id: Ic334875c60a453b39c10a2ffdee856b4851cb16c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:14:00 -05:00
Dmitriy Korovkin
3342ddf012 Change _nano_ticks to 64-bit
Change _nano_ticks to 64-bit with the functions that operate it
for the consistency with microkernel.

Introduce *_tick_delta() functions that return 64-bit value
and *_tick_delta_32() that return low 32 bits.

Change-Id: Id02c9f4b2b5c309ad9aa0a82bb7f4330af7e34a3
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:52 -05:00
Dmitriy Korovkin
e82a2a36c7 Compiler specific configuration
If a source code file depends on a configuration option,
that, in turn, depends on a compiler, this file has to
include toolchain.h.

toolchain.h includes a compiler specific header file that
sets the proper configuration option.

Change-Id: I7c9002522a8c6d6fd945e27a450ebe46ba9d4892
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:13:52 -05:00
Dan Kalowsky
ceeab10167 Renaming *_node_tick_delta to just *_tick_delta
This renaming will impact the following functions:
nano_node_tick_delta
task_node_tick_delta

Change-Id: I5d3fdfe0121674d88b8f3d8777150b2242b88d1a
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:51 -05:00
Dan Kalowsky
c46f1082d8 Renaming *_node_cycle_get_32 to *_cycle_get_32
We no longer support the concept of nodes.

This will impact:
task_node_cycle_get_32
isr_node_cycle_get_32
nano_node_cycle_get_32

This change also updates the nanokernel test API to work with the change.

Change-Id: I68de883b07d4775b09fda13e503c040b3f14baa7
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:51 -05:00
Dan Kalowsky
901c4f94d3 Renaming *_node_tick_get_32 to *_tick_get_32
We no longer support the concept of nodes.  This will impact the following
functions:

task_node_tick_get_32
isr_node_tick_get_32
nano_node_tick_get_32

Change-Id: I27184c76516da16a0c3f335656f9efcee2fb549d
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:13:51 -05:00
Johan Hedberg
a789d4e97b nanokernel: Add scheduling context-independent API for starting fibers
When the exact scheduling context is not known it's convenient not to
have to spell out the context in the name of the *_fiber_start()
function. All of the fiber starting APIs map to the same _FiberStart()
implementation, so all we have to do is to declare another alias for
it.

Change-Id: Ic6862383422f89ad7dc4f401e76d610826163bb9
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:40 -05:00
Johan Hedberg
9599f21dfb nanokernel: Add scheduling context-independent API for semaphores
When the exact scheduling context is not known it's convenient to have
a wrapper API that uses context_type_get() to call the right function
at runtime.

Change-Id: I02b2ac9039519468f5501571243426a6a57ffc4d
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:40 -05:00
Johan Hedberg
68224c1c69 nanokernel: Add scheduling context-independent APIs for nano_fifo
When the exact scheduling context is not known it's convenient to have
a wrapper API that uses context_type_get() to call the right function
at runtime.

Change-Id: Ie72a4b78d53f664575c1d9dfeace52b53d018850
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:13:40 -05:00
Inaky Perez-Gonzalez
8ddf82cf70 First commit
Signed-off-by:  <inaky.perez-gonzalez@intel.com>
2015-04-10 16:44:37 -07:00