Merges the four main pipe public APIs into a single file,
similar to what is done for other microkernel object subsystems.
Change-Id: Ib3dab0a9330700d77c9fd6f88500590c0004d7b6
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
There is no need to initialize fields to zero that are already
nulled out by the build system.
Change-Id: Ib37e77aaadb1beee800ad74dcfba7caff932015e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
These structures are only used by the microkernel itself, so they
now reside with other non-public microkernel structures.
Change-Id: I4bbba22e46c5336b7b3c41dcdc76e0d9de4e7e2b
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
There's no need to expose option combinations that are only used
internally by the microkernel itself.
Change-Id: I4e2725b060ce5edefdd1918c00fbd915cd67d8dc
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
1) Now invokes pipe routines directly, without the use of function
pointers.
2) Eliminates unreferenced _DEVICE_CHANNEL symbol.
Change-Id: I6e26476265ed8f33febb5a06c9d03daf7147ee5e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Renames the include file defining non-public microkernel structures
from k_struct.h to kernel_structures.h, and relocates it to the
microkernel's non-public include file directory. This means that
applications and drivers including the microkernel's public APIs,
using microkernel.h, can no longer access non-public information.
Note: This change also eliminates some redundant #includes by the
microkernel's own subsystems, since the inclusion of minik.h brings
in the vast majority of public and non-public APIs.
Change-Id: Ic7d9ec1ebb8a124ccd0aaad98b50e16c197ffa00
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises several trivial task APIs to avoid exposure of task object
internal fields.
Change-Id: Iefa8028042dff1abd1f447eb1cc1ee49f0c2eda5
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hard-codes the size of the command packet structure so that the
public microkernel semaphore API can utilize command packet sets
without utilizing non-public microkernel API information.
Also adds code to generate a build error if the hard-coded size
is too small, just in case the size of the command packet changes.
(Can't check for size equality, since the structure size may vary
from one compiler to the next. If the value is too large any extra
space in the command packet set will simply go unused.)
Change-Id: I69e7c2f08e3fe75d74bd712459d5587e22443c04
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Removes non-public type definition used to implement the microkernel's
task IRQ support from the public API.
Change-Id: I42c22f0fa323c5b9abbc7d3d29a89a9b2b903a36
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
1) Eliminates declaration of variables that are already being
included by a microkernel subsystem include file.
2) Eliminates duplicate declaration of timer_driver().
3) Moves definition of well-known events to the event-specific
include file.
4) Moves declaration of a task-related routine to the task-specific
include file.
5) Moves declarations that are only needed by kernel_main.c
to kernel_main.h.
Change-Id: I6f387915a5ce208879482522586b977118f657e7
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The variable task_irq_object is global because the test_task_irq project
needed to access it. That data should only be accessed through the API.
To make the variable local, break that dependency to the test project
and restrict the access to the variable.
Change-Id: I1ccb21625d456714a038e0374d124b42aa72e577
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
Fixing the folling whitespace issues:
- SPACE_BEFORE_TAB : We should not use white spaces before tabs to alignment.
- TRAILING_WHITESPACE : Lines should not end with a white space.
- QUOTED_WHITESPACE_BEFORE_NEWLINE : Removing unnecessary whitespace before a quoted newline.
Change-Id: I024e8d39164c5e5e9d8370f3499d21b49147feee
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
The 'else' statement should be in the same line that the
close brace of the 'if' statement. E.g.:
if (condition) {
do_this();
do_that();
} else {
otherwise();
}
This commit fixed this kind of error using the following script:
#!/bin/bash
for file in $(find ./ -name "*.[ch]" ! -path "./scripts/*" ! -path "./host/src/wrsconfig/*");
do
if [ ! -h $file ];
then
sed -i '/^[ \t]*}$/ {
:review_next_one_too
N
s/^\(.*\)\n[ \t]*else/\1 else/
/}$/ b review_next_one_too
}' $file;
fi;
done
Change-Id: I7e811a572d735fa08e84850055ebbde29eb10e8d
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
There should be a whitespace between the 'if', 'for' and 'while' statements
and the open brace. this commit fix this kind of error.
Change-Id: I4bae17d98f8ec8b698d40253a9a4c873111a8904
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
Line's length should be shorten than 100 characters. This commit
fixes these lines separating them into two parts.
Change-Id: Ic68c9086866cd778187aa1465470acc0485e2271
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
Some checkpatch issues were solved by scripts leaving other problems
such as alignment and indentation issues. In order to comply with the
defined coding style the following fixes were made:
- Fixed the function declaration moving the parameters' comments above
the function in accordance to the doxygen format.
- Fixed functions' opening and closing brackets. These brackets should
not be indented.
- Fixed the 'if', 'for' and 'while' statements adding the brackets
around the sentence.
- Fixed comments' alignment.
- Fixed indentation.
The work was done manually and submitted as one commit. I didn't
separate these changes in different commits because they were fixed all
at once. Basically, all errors were fixed in every file at once.
Change-Id: Icc94a10bfd2cff82007ce60df23b2ccd4c30268d
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
These APIs no longer serve a useful purpose; there removal helps
reduce microkernel-related "pollution" of nanokernel files.
Change-Id: I3fb1df1feb47abf1b3e57656175ba6c80e191932
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Ensures that the microkernel's command stack has at least one element
at project configuration time, rather than at project build time.
Change-Id: I74f10bcb0d0275854801b50d5160fc85fb911250
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The revised option name more accurately describes its purpose, and
avoids potential confusion with the microkernel's tickless idle
capability. Also, inverting the "polarity" of the option means that
conditional code that references it does not have to use negative
logic, which make the code easier to comprehend.
Change-Id: I0c6f82f077a87a28544048d214efa7020939e566
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Relocates and renames the include file which declares non-public
APIs needed by sysgen from the directory containing the microkernel's
public API to the directory containing its non-public API.
Note: Need to come up with a more elegant way for generated
kernel_main.c to access kernel_main.h, since the current relative
path approach is kludgy.
Change-Id: I5e4b07038e566f1f161001d676a3b0faa487a480
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hides the existence of these routines from the microkernel's main
public API include file, but allows both sysgen and the microkernel
itself to continue accessing them.
Change-Id: Iaf1beff81d045e9df29eb07517793e4b4410f51e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hides the existence of these routines from everyone but the
microkernel's initialization code.
Change-Id: I5dc0a1395c7f01f39d8f283e4f48b0c95578902e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Since the K_TIMER type is a non-public API used within the micro-
kernel itself, it doesn't provide any real type abstraction benefit
that isn't served equally well by the struct k_timer type it is
based on.
Change-Id: I482d7c0459d5734402be541322ff752dd1a3714a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The encoding of the microkernel object identifier fields is
something that only the microkernel needs to know.
Change-Id: I3701760cdce5768e082b6d2432b75382f5a2f557
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hides the existence of these APIs from everyone but the
microkernel's timer subsystem itself.
Change-Id: I49482a6e16fee28f1ed3e2244e47df401854c9fc
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Relocates the declarations for most non-public microkernel APIs
into the main include file for such APIs (i.e. minik.h), then
eliminates the per-subsystem include files. (The per-subsystem
files don't serve any significant purpose now that the routines
comprising each microkernel subsystem have been consolidated.
In fact, there wasn't a single file that included one of these
files that didn't already include minik.h!)
Note: The channel APIs have not been consolidated yet, as they
require further cleanup. Also, one mailbox API that is used only
by the mailbox subsystem itself is moved there rather than being
placed in minik.h.
Change-Id: Ic7f1ac8a67bd39b685f70379dffff0d0caf1b290
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hides the existence of the microkernel's tick count variable
from everyone but the microkernel system clock subsystem itself.
Change-Id: I6bd20c28758a52eeac376617dd8d542c03738c2a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hides the existence of the microkernel timer list variables
from everyone but the microkernel itself.
Change-Id: I81b64040efce849328e860067e37731b755a094d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Hides the existence of the microkernel event list variable from
everyone but the microkernel event subsystem itself.
Change-Id: I5a2ac41ebd8131b85897c60eaae24013f10686f0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Brings the name of this non-public microkernel variable into line
with those of analogous variables.
Change-Id: I17dc343faf2dc1ace63b5a3e8164ff08ddd60ebd
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The open braces of the 'if','for', 'while' and 'do' statements should be at the end on the
same line of the statement to comply with the defined coding style. E.g.:
if (x is true) {
we do y
}
Change accomplished with the following script:
#!/bin/bash
checkpatch_script="$VXMICRO_BASE/scripts/checkpatch.pl --mailback --no-tree -f --emacs --summary-file --show-types --ignore BRACES,PRINTK_WITHOUT_KERN_LEVEL,SPLIT_STRING --max-line-length=100 "
for file in $(find ./ -name "*.[ch]" ! -path "./scripts/*" ! -path "./host/src/wrsconfig/*" ! -path "*/outdir/*");
do
if [ ! -h $file ];
then
# obtaining the line's number where the error is reported in a reversed order
reversed_lines="";
for line in $(eval $checkpatch_script $file | grep "ERROR:OPEN_BRACE" | cut -d":" -f2)
do
reversed_lines="$line $reversed_lines";
done;
# fixing the issues in reverse order due to lines can be deleted affecting futher lines
for line_reported in $(echo $reversed_lines);
do
# search for the line where the open brace is
char_found="";
let line=$line_reported-1;
while [ ${#char_found} -eq 0 ]
do
let line=$line+1;
char_found="$(sed -n ''$line' { /{/ p }' $file)";
done
let statement_line=$line-1;
let brace_line=$line;
# condition to avoid modifying lines that ends with the character "\"
char_found="$(sed -n ''$statement_line' { /\\$/ p }' $file)";
if [ ${#char_found} -eq 0 ];
then
# fix the issue
echo "$file : reported on $line_reported (found on $brace_line -> moved to $statement_line)";
sed -i ''$statement_line' { s/[ \t]*$//; s/\([ \t]*\/\*.*\*\/\)$/ {\1/; /{/ b already_done s/$/ {/; :already_done }; '$brace_line' { s/{[ \t]*//; /^[ \t]*$/ d }; ' $file;
fi
done
fi
done;
Change-Id: I517c40bb33840ef531f2319354350f578b238abb
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
Updating local variable's name to follow a consistent naming convention.
Change accomplished with the following script:
#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find ./ \( -name "*.[chs]" -o -name "sysgen.py" -o -name "*.kconf" -o -name "*.arch" \) \
! -path "./host/src/genIdt/*" \
! -path "*/outdir/*" | xargs sed -i 's/\b'${1}'\b/'${2}'/g';
Change-Id: Ie65865c480be5b6a678ef4716dade3ee745bd88f
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
Updating global variable's name to follow a consistent naming convention.
Change accomplished with the following script:
#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find ./ \( -name "*.[chs]" -o -name "sysgen.py" -o -name "*.kconf" -o -name "*.arch" \) \
! -path "./host/src/genIdt/*" \
! -path "*/outdir/*" | xargs sed -i 's/\b'${1}'\b/'${2}'/g';
Change-Id: Icf5900c057f3412d3c7725c07176fe125c374958
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
The microkernel server's stack area can be defined by the kernel
library itself, without relying on sysgen to do it.
Change-Id: I9359946ce9ca9138970db4e264fd25d8b92034c6
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves workload monitoring logic from microkernel server file and
relocates it so it resides with other workload monitoring code.
This change means that the various variables use for workload monitor
computations no longer need to be globally visible.
This move also allows correction of two pre-existing issues:
1) Eliminates reference to non-existent POWERSAVEOFF configuration
option.
2) Test to see if idle task has been deselected is no longer done
if prior test has shown that it has just been selected, since
the two conditions are mutually exclusive.
Change-Id: Ibd04b789e9ed40910c33261285c07f5a1044eee7
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
1) Removes leading underscore from non-global API name.
2) Adds missing function comment block.
3) Adds an important caveat regarding the way workload monitor
calculations are done.
Change-Id: I66963f6a7a0d419f97a6a41cee4efb0eaf510585
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Remove workload monitoring logic from system clock tick file and
relocate it so it resides with other workload monitoring code.
Note: There is still some workload monitoring logic in the microkernel
server that needs to be consolidated.
Change-Id: I399a90d6a1ca4792f6f40cbb66ce8c1c6f15ceaf
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Shorten API name by removing extraneous wording.
Change-Id: Iff67c4d7e82b7093e3d4d8a7ce61a3011e0ff517
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Merges content of microkernel's taskcall.c file into cmdPkt.c.
Change-Id: Ifc3642a6f0ff4fb98423a36b1e7d18acfade2991
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
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>
Relocates routine that updates active microkernel timers when the
system clock is incremented so that it is co-located with the
rest of the microkernel timer object routines. Also renames the
routine to conform to the revised kernel naming conventions.
Change-Id: I264833fd0aad210057ad8c0cd6a929e1656197db
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Folds this routine into task_tick_get(), since their co-location
into the same file means that there is no need for one to be a
wrapper function for the other. Also enhances the comments describing
the resulting routine.
Change-Id: I23210991b13be8864af0faf7e1fc4f23aa9252c2
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves routines that have nothing to do with microkernel timer objects
from the time support file to the file containing system clock support.
Change-Id: I7ab3e579877d689dc9487ca3330fe25e2e4afdd0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Renames routine to conform with coding conventions and enhances
comments describing routine. Also converts routine to a non-global
routine, since it's only called from one place.
Change-Id: Id2ca15169eeb34248a1adfaecdef0ccd04e313d1
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
This file contains content that really belongs in the files that
implement the microkernel's system tick logic and the microkernel's
timer object logic. Once the content is relocated, the file is
empty and can be deleted.
Change-Id: Ia116424d0bf11a759e5d995443121be98a320e29
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves the architecture-independent microkernel's handler for
fatal task errors into the file containing other abort-related
routines, since it doesn't have anything to do with the
microkernel server code it previously resided with.
Change-Id: I284eb05339cdff955f02018edfd0e53619b283b4
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
1) Updates comments to better describe the purpose of the file.
2) Corrects an excessively long line.
3) Eliminates an unnecessary #ifdef, which isn't required now that
the file has been moved to the main microkernel source directory.
Change-Id: I765095e6989213d82092aecd8a16b495b3d4b8d4
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Relocates the microkernel server implementation so that it appears
in the intuitive kernel subdirectory, and give it a more meaningful
name.
Change-Id: Id93620b6f5e4797bbbeef9eadf02490e19220d7e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Does a minor reshuffling of logic to ensure that the idle task
continues to busy wait even if _workload_loop() unexpectedly
returns. Also enhances associated comments to make the operation
of the idle task a bit clearer.
Change-Id: Ie6fd3fde0b088770815b1946415d213ee0e54a4b
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
1) Fixes up comments to improve readability.
2) Corrects lines whose length violates the limit specified by
coding conventions.
3) Removes two extern statements that are no longer needed
due to the recent consolidation of idle-related code.
4) Substitutes the proper symbolic value for two numeric literals.
Change-Id: I7f979ab84b7f888f4015a406a84d8483a105255c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Consolidates all architecture-independent microkernel code dealing
with advanced power management into the main microkernel idling file,
so that it can be more easily maintained.
Change-Id: I140575508e32fe25d5210b8611ad1ffdf55b7529
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves all files in this sub-directory up one level, to the main
microkernel source directory, then deletes the sub-directory itself.
Change-Id: I5b20310828c26038015b159cb6c57906a8258727
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves all files in this sub-directory up one level, to the main
microkernel source directory, then deletes the sub-directory itself.
Change-Id: Ic8e158e4e9be9e4ba21a935c371c49beee4ad276
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves all files in this sub-directory up one level, to the main
microkernel source directory, then deletes the sub-directory itself.
Change-Id: Ifd56369e5209b06fae39ee69403ea234fb392b4a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Relocates start_task() so that it appears in the main microkernel
directory, alongside its complementary routine abort_task();
this corrects a long-standing anomaly in which this microkernel-
specific routine appeared in the nanokernel portion of the tree.
With this move, the start_task.c file and its parent nanokernel/task
sub-directory no longer serve any purpose and are removed. (Note that
no changes are required for ARC architecture support, which does not
support microkernel capabilities and doesn't use this sub-directory.)
Change-Id: I973e1c32c9a8ddcacdc08159069ae7cdfea0f107
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
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>
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>
We no longer support the concept of nodes. This will impact the
following function names:
task_node_tick_get
isr_node_tick-get
Change-Id: I2591193976578689e70b9d6833d5a89a4dc0c4ce
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
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>
Eliminates unnecessary "node_" portion, as there is only a single
source for which workload information is collected.
Change-Id: Id7c03e2149d1b7979a6921e99e1db0288da09c0c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Since the microkernel now supports only a single processor, there
is no longer a need for a means to identify it.
Change-Id: If5b2d8e114d8a3bfdd597bc23d70be5e1fa2238c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
No longer referenced, and not part of the public API.
Change-Id: I97b7bbfe695fc867f93cb222ad893d112f25f755
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Updating micro kernel functions to follow a consistent naming convention.
Part of that process is the removal of camelCase naming conventions for the
preferred_underscore_method. This specific change maps the macro to the
function naming used by the OS.
Change accomplished with the following script:
#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
echo "Checking C, CPP, H, HPP, and s files..."
find . -type f \( -iname \*.[ch] -o -iname \*.[ch]pp -o -iname \*.s \) \
-not \( -path host/src/genIdt -prune \) \
-not \( -path host/src/gen_tables -prune \) \
-print | xargs sed -i "s/"${1}"/"${2}"/g"
echo "Checking KCONF, LST, and PY files..."
find . -type f \( -iname \*.lst -o -iname \*.kconf -o -iname \*.py \) \
-not \( -path host/src/genIdt -prune \) \
-not \( -path host/src/gen_tables -prune \) \
-print | xargs sed -i "s/"${1}"/"${2}"/g"
Change-Id: If41030c6b9f0417356807b0cc6f4c287378e0c17
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
- Needs the same change as for nanokernel timer code to prevent
a divide by zero error.
- Eliminates a prototype version of task_sleep() that attempted
to delay by busy waiting; this won't work because the kernel
won't have any timer support in place at all!
- Removes some unnecessary #ifdefs.
Change-Id: I0debf7aed4e4075f5821a77014c3a1d65fefe923
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel memory pool code so that it properly handles the
case where the kernel does not have timer support.
Change-Id: I38fc3916681bbd3ac678399724ddb679a16f6ead
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel memory map object code so that it properly
handles the case where the kernel does not have timer support.
Change-Id: I2dfb0663c91370ffbaed94d1d6aea909f64398db
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel mailbox code so that it properly handles the
case where the kernel does not have timer support.
Change-Id: Ibd3ff657e0cad1320d037d7c1e3e3c673c56c9e9
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel FIFO code so that is properly handles the
case where the kernel does not have timer support.
Change-Id: If069cafbcf695c48c2d788ea2a6b6e04a9f0c878
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel semaphore (and semaphore group) code so that
it properly handles the case where the kernel does not have timer
support.
Note: Semaphore code has some commands and routines whose names
imply that they are used only in cases where a timeout occurs,
even though they can be used in non-timeout scenarios too!
Change-Id: I6747032dd215f9b98e9d7d971e4b3ff32fbd7e55
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel mutex code so that it properly handles the
case where the kernel does not have timer support.
Change-Id: I987780521e137b95b9544013793937cdf45abafb
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel task IRQ code so that it properly handles the
case where the kernel does not have timer support.
Change-Id: Idc9bd120151e5c18798e1ed98af30dabe245fe64
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises microkernel event code so that it properly handles the
case where the kernel does not have timer support.
Change-Id: I72b0cef0e6a8cd19206857ec6c7564edf94edb72
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Updating the micro kernel structures and variable names to create a
more meaningful context by their name.
Change-Id: Ib3ae2cd9055f0690d454a0f52488721541c0fb62
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
Updating the micro kernel structures and variable names to create a
more meaningful context by their name.
Change-Id: Ie7b14787d36d99ed131db6ac3d4fbb652dc39b57
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
Converts all remaining references to the obsolete LITE symbol by
changing them to CONFIG_TICKLESS_KERNEL.
Note that the tickless kernel capability remains experimental,
as more work is required to properly support it.
Change-Id: Ie0d2514d00c3fd86297f38499e79f4d9c9edc15c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Most kernel code that depends on the state of the LITE symbol
has this dependency removed, since the symbol was used for an
incomplete feature that could not be enabled. This change has
no operational impact, as the LITE symbol was never defined
by the build system.
In a handful of timer-related references to LITE are not removed,
as they will be useful in adding a tickless kernel capability.
Change-Id: I4ae37f484e3ab08093b732d45aca87d2e8678adf
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Allows the number of task priority levels supported by the micro-
kernel to be configured, rather than fixing this value at 64.
Setting NUM_TASK_PRIORITIES to N provides support for task
priorities 0 (highest priority) through N-1 (lowest priority).
The lowest priority is reserved for the kernel's idle task.
This enhancement allows system designers to significantly reduce
the size of the microkernel's task priority queues by eliminating
unneeded queues. In systems requiring only a few task priorities
over 500 bytes can be saved.
Change-Id: I497aac608a3d548fb1b024068c08a5f494c3d524
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Updating micro kernel functions to follow a consistent naming convention.
Part of that process is the removal of camelCase naming conventions for the
preferred_underscore_method.
Change accomplished with the following script:
#!/bin/bash
echo "Searching for ${1} to replace with ${2}"
find . -type f \( -iname \*.c -o -iname \*.h -o -iname \*.s -o -iname \*.kconf \) \
-not \( -path host/src/genIdt -prune \) \ \
-not \( -path host/src/gen_tables -prune \) \
-print | xargs sed -i "s/"${1}"/"${2}"/g"
Change-Id: I6b3d61c9ae7b024bb82356678cc2fc1d433dd3bc
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>