tick_get(), tick_get_32() and cycle_get_32() APIs were missing for
fibers.
Change-Id: Ic03880714f9f83f57b5c0599bc04b680fabea533
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The drivers provide _sys_clock_cycle_get(): moving the public APIs to
the drivers allow them to be aliases of it.
Change-Id: Ic5975a048f2b51f94510f0c3cd5e6ab3a8907718
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
These two were dropped during the conversion to Kbuild.
NOTE: THREAD_MONITOR was originally called CONTEXT_MONITOR.
Change-Id: Id17f51ee5848a9c9aea3cd3c5aa963492efdf4a8
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Also for ARC, rename context_wrapper.S to thread_entry_wrapper.S.
Change-Id: I83318ae352a688996f8436cf3252f6108ec23dc5
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Hopefully, this is the very last time a nanokernel object will have been
referred to by the 'channel' terminology.
Change-Id: Ied6243220803492af174571bfed328da007f2c5d
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Make these public:
- SECONDS(x): macro that gives the number of ticks in x seconds
- MSEC(x): macro that gives the number of ticks in x milliseconds
- MSEC_PER_SEC: number of milliseconds per second
- USEC_PER_MSEC: number of microseconds per millisecond
Change-Id: Ic5dbf9349651a477b066edb0c6b6721da2b7e5bb
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Somewhat useful utility that should only have one implementation, so it
can impede on the normally-available application namespace.
Change-Id: I085850177c231fdf58634f97e897c4d2e1a5cffb
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The term 'context' is vague and overloaded. Its usage for 'an execution
context' is now referred as such, in both comments and some APIs' names.
When the execution context can only be a fiber or a task (i.e. not an
ISR), it is referred to as a 'thread', again in comments and everywhere
in the code.
APIs that had their names changed:
- nano_context_id_t is now nano_thread_id_t
- context_self_get() is now sys_thread_self_get()
- context_type_get() is now sys_execution_context_type_get()
- context_custom_data_set/get() are now
sys_thread_custom_data_set/get()
The 'context' prefix namespace does not have to be reserved by the
kernel anymore.
The Context Control Structure (CCS) data structure is now the Thread
Control Structure (TCS):
- struct ccs is now struct tcs
- tCCS is now tTCS
Change-Id: I7526a76c5b01e7c86333078e2d2e77c9feef5364
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The comment did not convey anything, as it was a relic from before a
previous renaming. Use the SECONDS(x) macro to make everything clearer.
Change-Id: Ia757061c4083d7567df5b214326c2cf8b6804fbf
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
There is no concept of a "process" in the system, so remove last
mentions of that concept from free-form text (doc, comments, macro
parameter names).
Change-Id: Ic1b73371c448ed93b0db46bc9bb412d1e1dbc8bd
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Remove last remaining legacy naming of 'proc' from the kernel's symbols.
Change-Id: Ide4ff3d06a74c5e6178c01e62a719e81709935c2
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
This will allow renaming K_CREF.proc to 'task'. It also is really
representing a task ID, i.e. the value a user passes to microkernel
APIs.
Change-Id: If2dd3f1ed5ce93178acd4713ad5497e5b3e0401d
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
k_proc was a legacy leftover that does not make any sense, since there
is no concept of a "process" in the system. Rather, that data structure
refers to a 'task control block', i.e. the representation of a task
execution context from the microkernel's point-of-view (not to confuse
with the 'struct ccs', the representation of a thread execution context,
from the nanokernel's point-of-view).
Change-Id: Ic29db565af023be629ce740bbcb652ece7dc359f
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
When compiling with optimization level 0 (-O0), the linker complains
about missing references to uart functions. This is due to compiler
treating this functions as extern, since -O0 disables function inlining,
as described in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49653
So change the declaration to static inline.
Change-Id: I5963153dc1efd22083b6b91ae2b70c11d602c6c6
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Adds an example showing how to start a fiber from a task.
Change-Id: I5728d9b48650c60ab265924f436f78696849b915
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
When compiling with optimization level 0 (-O0), the linker complains
about missing references to uart functions. This is due to compiler
treating this functions as extern, since -O0 disables function inlining,
as described in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49653
So change the declaration to static inline.
Change-Id: I59607cffbd1cae141a9eeaca699549ebf8203061
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit allows kbuild to rebuild if the following environmental
variables change: KERNEL_TYPE, PLATFORM_CONFIG, ARCH.
Change-Id: Ibab0392b6eb362a5423bce149c013235b75d3140
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Changes the names and file structure for all documentation collaboration
relevant content. Updates the cross-references and figures where
applicable. Content was changed as little as possible.
Change-Id: I8b3c59368fa288a43c87793bf731c7d8883df3ab
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Changes the names and file structure for all communication relevant
content. Updates the cross-references and figures where applicable.
Content was changed as little as possible.
Change-Id: Icd19d2f17a9ab0f11373a0d8a175d8c95ac0f44b
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
The collaboration content files have been placed in three folders. One
for communication, one for code collaboration and one for documentation
collaboration. This change only moves and renames the files. The
cross-references and file paths within the files have NOT ben change.
That is comming on the next change.
Change-Id: Ic09a51878ab432561bc394a4464570cc51a28d69
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
This commit fixes an issue with INIT_STACKS configuration option.
k_memset is substituted by the libc memset routine to initialize a
block of memory.
Change-Id: Ic3e286d0976f618110b2828f6da76417b868aef0
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
The configuration option documentation is autogenerated from
Kconfig files. This list right now applies only for x86.
Change-Id: Ibfc84324bb5e2206362d3bca6ab28aee0109f429
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The Kconfig option SYS_CLOCK_HW_CYCLES_PER_SEC for the basic_atom platform
configuration was mistakenly left at 900000000. That value was necessary
when basic_atom used the LOAPIC_TIMER, but as it now uses the HPET, it must
use 25000000.
Change-Id: If2735895edfe2f67905bf57e4008efbee50084f7
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
This converts away from camel case according to the coding style.
Also, the file description has been made into doxygen style.
Change-Id: Ib4dd85a4a96e4e87279c92fa243d3f860ebe63f2
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Converts the file description to doxygen format, and updates
the information inside. Also removes empty lines.
Change-Id: I3866843a31e30e1dd464b27cafc830900d8dce4f
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Clean up variables and function arguments to conform to coding style.
Also align the function argument list.
Change-Id: I49eff429bfa369c8a544d8171e35a41523995aa3
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Converts the file description to doxygen format, and updates
the information inside. Also removes empty lines, updates
the comments for function, and adds missing comments.
Change-Id: I7610e8667cd85feb0c4c853b44880f7e29b6c05a
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Clean up variables and function arguments to conform to coding
style. Also align the function argument list.
Note that this only changes the parts related to UART.
Change-Id: I84a6ba88963784f6ddc77d5bda653a7d2de6a72b
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Converts the file description to doxygen format, and updates
the information inside. Also removes empty lines, and updates
the comments for function.
Change-Id: I97672996510fec1c92a30f78d6f088f02279fb44
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Clean up variables and function arguments to conform to coding
style. Also align the function argument list.
Change-Id: I0787558abe899e9376ede0ee5c5ac5728c42254d
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Revises and supplements information on concepts and use cases.
Change-Id: I1ae8f9382b6fd98af59f2a8ef555830981807d5d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises and supplements information on concepts, use cases, and
how to define an event.
Change-Id: I1de8c87d069288c14d6f378d96590fcc3d569801
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Now ordered from most basic semaphore type (events) to most complex
semaphore type (mutexes).
Change-Id: I4cf69ee2b87b10b8d962f963b3631d9bdae608e9
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The kernel's services previously referred to as "signalling services",
which include object types such as semaphores, events, and mutexes,
are now referred to as "synchronization services". This term more
clearly conveys their use as a means to synchronize the operation
of two or more entities within the kernel.
Change-Id: Id24b96f2daf7d866a2d134c222e3d0b6fc568f5a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Corrects example code by eliminating unneeded characters.
Change-Id: I9bbc8a19b6b66807a366a2d514d62495b9371046
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
In order to cover maximum of code, make different platforms
use different driver configuration. This way basic_atom uses
legacy emulation combined with edge-triggered interrupts while
galileo platform uses normal mode combined with level-triggered
interrupts.
Change-Id: Ib80553dbb16cf6bbe61ee5e41788031037f41860
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
Fix the option that enables level triggered interrupts usage.
It depends on CONFIG_HPET_TIMER_LEVEL_HIGH and CONFIG_HPET_TIMER_LEVEL_LOW
configuration parameters.
Change-Id: I3529b1e57b1625e6f0f4b05d9c15eb563e9c4f83
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
The initialization procedures need to be called in the
following order:
- basic hardware initialization;
- devices initialization;
- hardware clock initialization, that the kernel needs to
run the kernel server.
This way, the board initialization routines is placed
to the pure_early_init level to make sure it runs first,
all device initialization procedures run at pure_init level,
so they are initialized early enough to be used for debugging
if needed. Hardware clock initialization is placed on
nano_early_init level to make sure hardware clock is initialized
just before the kernel server starts.
Change-Id: Ieecf9f0252c47c621b7208969687dc1113fc2ad0
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
Revise instructions to take advantage of the "public object"
and "private object" terminology now covered in the kernel
overview documentation. Also incorporates some missing information
the users need to be aware of when defining certain object types.
Change-Id: Ic0b359baf4443714c80200fdaff9cf2d253e6b99
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Mentions the open source nature of the Zephyr kernel and its
permissive licensing right up front, to help encourage potential
users who are concerned about GPL-type licenses.
Change-Id: I9250aae3caf5329cc58f547f381c32a94843ea03
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The stucture elements neet to me 32-bit aligned for ARM platform.
Change-Id: I269753cbfec5e45880833e1fc036921a0f274d23
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
The board runs with 120 MHz CPU frequency, the systick
uses CPU frequncy. This way 120MHz is a correct value.
Change-Id: If47f1ce6371fb7202ececb4d5f8f7c984aa66598
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>