Replaces various stringify type macros with _STRINGIFY(x).
Change-Id: Ic029d1e6ae344e960464310067eb1a648869919a
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
If not specified, some GCC variants may default to -march=armv5.
Change-Id: Ieb97591195b00fea3c7602df554c0d89164be19e
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Use the linker to link instead of the compiler. As a direct consequence,
the makefile variable ${vLD_K} is no longer required and is replaced with
${vLD}.
Also note that this requires the addition of defs.exec arm variants for "otc"
and "xtools". These files are needed so that the linker knows where to find
"libgcc.a". (Previously when linking using the compiler, the compiler knew
where to find "libgcc.a".)
Change-Id: I0888a51f63687068336fa591863469342a56215d
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Fixes a comment to reference the correct variant in a makefile fragment.
Change-Id: I5c021ed7a727dcddb3f1561e98d78b628e952e39
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Not only is __start is a neutral label, but using a common entry point for all
architectures allows the entry point to be hoisted out of the linker script and
specified by the build system.
Change-Id: Ibcbb11a40ff964e0fc3c90afcfe231746071b040
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Prepends a 'v' to the toolchain executable makefile variables. Thus ...
CC becomes vCC,
CPP becomes vCPP,
...
This is done to allow a variant to override the toolchain's naming convention
as not all variants of a toolchain follow the same naming convention.
Change-Id: I917b7b82b6911cd6b2fbd063ffd4d7f3719b4dfa
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Includes an explanation of how the in-code documentation is integrated
using Doxygen / Breathe and the raw generated output from the code.
These files are needed to understand how the in-code comments flow into
the documentation and to be able to display and link to those comments
from the documentation.
Change-Id: I275f8c32cfe889da43b4db5b8037e52876ae3c68
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Includes the documentation license, a
substitutions file and a README detailing the new infrastructure and its
installation.
Updates the master file, index.rst, to accomodate the content files.
Change-Id: I529567e6e29d24a4261c0fa4b3db1176266f9777
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Configures Doxygen to generate its output inside the doc/xml folder. It
also configures Breathe to look for that output in that location.
Patset 2: Changed the project name to Tiny Mountain included aditional
files for Doxygen.
Change-Id: I8514dc7035b196fae365d2f02fe9f6ca54584af0
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Past tree restructuring efforts missed updating a few comments that referenced
file locations.
Change-Id: I19a732c77b160acf5a819b4993e4f3d55cef2d1c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Keys off variations of "ICC" to remove references to the Intel C Compiler as
it is not supported.
Change-Id: I09f67880b39839982ed1c450e564c274440628a5
Signed-off-by: Peter Mitsis <peter.mitsis@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>
This project requires access to non-public kernel structures
for testing purposes.
Change-Id: Ibfa119b99bda170498503cdbbee6b98f5cf41f54
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>
No longer drags in include file defining non-public structures.
Change-Id: I91098867b31e34e8d16639339bbd938dcd8869af
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
This structure is no longer referenced anywhere.
Change-Id: I41eb69dbab9a6e73b947a0a46fced9d8f7166922
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Needed to quite compiler warning which is turned into an error by
-Werror
Change-Id: I1f84af332e516edbeaa5e1836653c21935ca7924
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
When the local APIC timer driver is configured into the system it needs to
ability to enable/disable the local APIC timer. The definition of the
LVT mask bit was moved into the APIC interrupt driver as part of the
driver reroganization effort. Move the definition to the public header
file.
Change-Id: I8e7f8eab9f39aa17b96079836c182bde6f7b4fd1
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Only pentium4 was tested with the default sanity_chk, since it was
listed as the default platform on every test.
The ARM platforms were already taking a different approach: if the test
is runnable, build and run it for the QEMU platform (ti_lm3s6965):
otherwise, build it for the real board (fsl_frdm_k64f), since running on
that board is not currently automated.
Do something similar for x86 platforms: when runnable, use either
pentium4 or minuteia on QEMU; this gives coverage to minuteia. Also, for
a couple of build-only tests, build one for quark and one for atom.
Change-Id: I2f80a835d8f9b6df020bc8a2ed966e6d47c51e2e
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The initial memcmp implementation was buggy, so to have at least some
sort of sanity testing of the implementation add a test case for it to
test_libs.
Change-Id: I9e1a48e4b646e80258c1689dde2461a6134dddf8
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
The previous implementation would read one byte past both buffers if
the buffers were equal. Make sure the pointers are not incremented
past the last byte. Also ensure that comparing zero bytes always
returns 0.
Change-Id: I5ef25d6bd2f7417b60102dc1c2602d8b23c4c1bc
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add a memcmp implementation that may be used in various parts of the
operating system.
Change-Id: I784bdcb26b924b2513ecd0b3ce1898195453f755
Signed-off-by: Johan Hedberg <johan.hedberg@intel.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>
This commit fixes the calling of the function
_sys_clock_tick_announce from the x86 lo-apic timer.
This call was used wrongly, using the old convention:
__sys_clock_tick_announce
Change-Id: I5417efe1efcb94925bd4bebbb3b91b491349c26e
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.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>
These symbols are no longer part of the microkernel's public API.
Change-Id: I0dfa32af02cfa71fb31997b9bcdac60208d93888
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The generated file now takes advantage of the fact that including
vxmicro.h automatically includes the microkernel's public APIs.
Change-Id: I17879b8f209c67ad159405aca16770af8e099fb0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Sysgen no longer needs to generate two different include files
containing the various definitions available to applications.
Note: This consolidation also eliminates the generation of
an obsoleted symbol of the form NODEx.
Change-Id: Idf28efba95193037d04603498e9e956638027ed9
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Now declares task entry points in the generated kernel_main.c,
which is the only place that needs to know about them.
Change-Id: Ifa2ebf64ced26e71387d6fd8350893205d6961a0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
There is no longer a reason to expose information about the
internels of the microkernel's event subsystem to application
files.
Note: The one sample project that tests event processing now
explicitly declares any non-public event APIs in requires.
Change-Id: I4c3f85a7b0bc485713c21424a923102b4f400ced
Signed-off-by: Allan Stephens <allan.stephens@windriver.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>
This commit fixes the issue marked as SPACING by the checkpatch script
deleting the whitespaces between the function name and the open parenthesis.
Change-Id: I972b1646904bf6e1131263f94ab5024a528ae07d
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
Avoid hard-coded absolute paths.
Assume gcc and ar will be found using $PATH.
Change-Id: Ie7bd7d262a56a20741c8b3e5c1d0d600d8a1b60d
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
The ARCv2 will provide support for nanokernel tickless idle.
The other architectures still have the MICROKERNEL dependency by having
the APM menu depend on MICROKERNEL.
Change-Id: Ib8e550bb9515b332311b122751f534f69155cef5
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
TICKLESS_IDLE_THRESH depends on TICKLESS_IDLE, which depends on
ADVANCED_POWER_MANAGEMENT, which itself already depends on MICROKERNEL.
There is thus no point in having TICKLESS_IDLE_THRESH depend on
MICROKERNEL.
Change-Id: I71daeee5fe0766f40ba56d499c48cc5a0dda561c
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Replace duplicate code and will allow for further cleanup by possibly
consolidating micro/nano code that is currently guarded by preprocessor
conditionals.
Change-Id: I9aa9966c581244646b6ea317ef8b51fef9054dd4
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The gain is two-fold:
- Removes the need of preprocessor conditionals in the timer drivers'
ISRs.
- Allows removing the duplication of the 'tick announce' code across
all timer drivers.
Change-Id: I6078a0b00a833c1d1ca76474987c3214a0c05f7b
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The correct call is nano_isr_lifo_put, but they are aliases of each
other, so that never caused an issue at runtime.
Change-Id: Ibec8e6d3377133e5e67589c5a3ad1b8fb3cc652c
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Changes due to the different SDK package layout.
All needed settings are derived from the following environment
variables:
export VXMICRO_TOOL=gcc
export VXMICRO_GCC_VARIANT=yocto
export YOCTO_SDK_INSTALL_DIR=<toolchain dir>
sdk_host_tools=${YOCTO_SDK_INSTALL_DIR}/sysroots/i686-pokysdk-linux/usr/bin
export PATH=${sdk_host_tools}:${PATH}
Change-Id: I358b0b55b552d639bb2a2c2a54f2bef5e5099316
Signed-off-by: Juro Bystricky <juro.bystricky@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>