Several pipe buffer definitions now reside with the other
pipe buffer code. (One routine is also made non-global,
since it only referenced by the pipe buffer code itself.)
Change-Id: I76785d113edd62c9626a7116c9206472656128ec
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
1) Re-orders routines to eliminate the need for forward referencing.
2) Makes routines non-global if they are only referenced by pipe
buffer code itself.
3) Optimizes out an unnecessary wrapper routine.
Change-Id: I731db9c9125c58d98c5e350bdd1708456e2cf40c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Brings file names into alignment with current naming conventions,
and relocates them to the main microkernel directory.
Note: Since the microkernel/channel directory is now empty, the
build system no longer attempts to build its contents.
Change-Id: I936c7cdf2e08f675dd66a87cacf3b4fa5a7a6441
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Relocates several marker-related routines that didn't reside with
the main set of such routines. This move allows one of them to be
made non-global, and the other two to be optimized out (since they
were now just unnecessary wrapper routines).
Change-Id: I517779be1778b032ee08654d244039ef36d30d1c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Merges buffer-related routines into a single file, which also allows
a number of them to be made non-global (and eliminates the needs for
them to be declared in an include file).
Change-Id: Ib4fcf70afef548fd493540753f996a50c78f7521
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Uses a simpler algorithm to choose the lower priority value
(i.e. more urgent value) associated with the sender and receiver.
Change-Id: I4e8d2ff9678dfefdcd9941c96a75105841c73fcd
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Relocates non-public symbols to the locations they are really
needed (except for CHAN_DEBUG, which is dropped since it is unused).
Change-Id: I52743959a283fec675aa2b3168ef1a122a27ce55
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Merges related routines into a single file, which also allows a
number of them to be made non-global.
Change-Id: Ib749d3908b86a93bf97c0859861c6eaffe5f5f0a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Merges the routines which process the four command packet types
used to process a pipe "put" operation into a single file, so that
the flow of control can be more easily comprehended. Also merges
the analogous routines which process a pipe "get" operation into
a single file.
Change-Id: I56befa0f9a772b3269fd6ece19f003a5c2578a6f
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
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>
Aligns file name with revised terminology for pipe objects.
Change-Id: I247f151f0496f33212f8a2ff7c6d126ecaf520ba
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>
Specify Yocto SDK qemu and qemu Bios locations.
If the environment is initialized with:
export VXMICRO_QEMU=yocto
then the settings from the file
make/target/run/defs.qemu.custom.yocto
will be used.
Change-Id: I537f07f55461fcbadfbfe8af3a4639068587e056
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
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>
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>