Gets rid of places where there is no need to include these files
at all, or places where these files are being indirectly included
due to the inclusion of nanokernel.h.
Change-Id: I7b58148af454b977830c00a6b519a78d0595603b
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Moves these macros to the main public API include file for each
supported architecture, since the <arch>type.h include file is
to be eliminated.
Change-Id: Ia87b9c0bed1501bcce7f363bd4155f7ef642376a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Revises and documents the confusing and inconsistent set of
dependencies for the kernel's two main public include files.
The files now now clearly exhibit the following behaviors:
1) microkernel.h provides access to all public microkernel APIs,
public nanokernel APIs (both architecture-independent and
architecture-specific ones), and public "generic kernel" APIs
(such as kernel version and system clock APIs).
2) nanokernel.h provides access to all public nanokernel APIs
(both architecture-independent and architecture-specific ones),
and public "generic kernel" APIs.
Change-Id: I64d1e88bb033ef10692033bb78e44cdcbe8124bc
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Add a tolower implementation that may be used in various parts of the
operating system.
Change-Id: I5aa855b41e2a09fcb077860b4580dbe1e6d4a093
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This commit organizes the prepare sequence targets removing
some unused targets left behind as a relique from the linux build.
Change-Id: I7b215865e2c06f9c0138806bce9fce9191d07d8b
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit removes the generation of the kernel.release file.
THe kernel.release file is redundant with the kernel version file.
Change-Id: I55f75597a760b3a9c672b7409ad93533a4f2c6ab
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit improve Kbuild speed by removing the defconfig Make
call and including a direct copy of the default configuration file.
The .initconfig target is broken down in mergeconfig and defconfig
targets as well.
Change-Id: I1efadfca487a3fa8438e65e1c3da83fc46576628
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit allows to control the verbosity of the Makefile.inc
execution using the console parameter V=1.
Change-Id: I253332b6e33725b6cd4cd83643321278f396ed50
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit add the symbols CONFIG_RANDOM_GENERATOR
to the default configurations.
Change-Id: Iff0e5a7d144993bf1cc9967bcffff037333cdf30
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit fixes the issue of kbuild creating empty header files
at the include/config directory.
Linux Kconfig creates a header file for each Kconfig symbol that
changed in between build runs and re-configurations. This feature
is not needed in Zephyr.
Change-Id: I366183cef398b3ab7488456ddbed07f292c5a9bc
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Several files were not explicitly including APIs that they reference,
which could eventually lead to trouble.
Change-Id: Ib33cadfa658280df3fcb4c670463d41b63097b31
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Gets rid of this non-standard terminology, and spells out
"microkernel" in full (when needed at all).
Change-Id: Ibfae84225fdceb526d8732bc23a0885f2d3be462
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Removes the instruction directing users to issue "make pristine"
before building a sample project, as this should be unnecessary
under normal circumstances and can cause the user to unexpectedly
lose their current configuration information. In its place, a section
on troubleshooting is added that describes how to rebuild a project
using the desired configuration.
Change-Id: I4eaace2888000c3ec5d101c27a38c74c2987312e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Gets rid of single-line comments required by a previous set of
coding conventions. These comments provide no value to readers
and just clutter things up.
Change-Id: I2a08b12cf5026253de56979efdfc510e7e68defe
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
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>
Revises kernel so that it uses the standard boolean type library
defined for C99, rather than having its own custom boolean type.
Also revises sample projects that used the non-standard type.
Change-Id: Ib41b7f836da25352aa5ae9dfbbfdd29739017b6f
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
As a result of the conversion to the new build system, this file
was missed when the test project was eliminated.
Change-Id: Ie61d2549910cfeee2c0627451d05a5b1faff3deb
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The global variable _k_server_command_stack_storage is only referenced in
one file.
Change-Id: I62f327c77dfff2d6c553436f5e77a8053aa93031
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Closing comments to two CONFIG_MICROKERNEL ifdef blocks incorrectly identified
the ifdef block as NOT belonging to the microkernel.
Change-Id: Iee415e33d7f8a88c41009c5783b37da3a431461b
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Instead of initializing the stack (when INIT_STACKS is enabled) in start_task()
and _fiber_start(), do it in _NewContext(). This helps to both reduce code
duplication AND ensure that all contexts get an initialized stack (previously
the background/idle task's was missed).
Change-Id: If2d50309d2be48fac937f5d0ae96b9de185c0fe2
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Add infrastructure support having multiple instances of a driver
configured into the system each with its own compile time
configuration information.
Change-Id: I1e447af18311139b43f74fe0439483ccd132b63f
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
This commit adds the generation of the binary kernel files:
kernel.bin
kernel.lst
kernel.strip
Change-Id: I7e1aab494ee1143994b4b65d0991906fbe8a36df
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit sets Execute in Place (XIP) option
as a default for CortexM architectures.
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
Change-Id: Ib9bd361a9ac6c64d9755c6bf3ac5c8df6c1b22f2
According to section 3.7 of Documentation/kbuild/makefiles.txt, using
EXTRA_CFLAGS in Makefiles is "still supported but their usage is
deprecated." However, using make EXTRA_CFLAGS="-DSOMETHING" results in
EXTRA_CFLAGS from Makefiles being overwritten, obviously breaking the
build. This patch converts to them to the newer ccflags-y which also
fixes the problem.
Change-Id: I6309439599d4c9cc184f9ecd941bde841982ef07
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Since the address of the new context is known before _NewContext() is invoked
(due to it being passed a properly aligned stack), there is no longer any
need for _NewContext to return the pointer to the context.
Furthermore, as a direct result of the properly aligned stack, the pointer to
the new context does not need to be passed as a separate parameter since it
will always match the passed stack pointer.
Change-Id: Ie57a9c4ad17f6f13e8b3f659cd701d4f8950ea97
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Hoists the initialization of the the microkernel's idle task's stack fields
out of the runtime and into sysgen thereby removing microkernel code from
the nanokernel initialization.
Change-Id: I54cbbec9e875a52b5fa52562e1a2770cd3ac1cc3
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Runtime alignment of a context's stack is no longer necessary in _NewContext()
as the memory is aligned (via the __stack tag) before calling _NewContext().
Change-Id: I31b7fd883ea3f1dcdb378e8ff508430bc75afcde
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Updates sample projects to ensure that fiber stacks are properly aligned by
using the __stack tag.
Change-Id: I4f92033571d65aa87b6d46da5d7cb6d92eadc27a
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Bluetooth fibers must have their stacks properly aligned.
Change-Id: Id46b376abb46400c563050b4c8393ab3983ff045
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Updates the kernel defined stacks to ensure that they are properly aligned
by using the __stack tag.
Change-Id: I8514d38ee2e5bb2b2d87b17021db3c7f9c36a772
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The "__stack" tag is to be used to align an array (to STACK_ALIGN) for stack
use by either a fiber or task.
Change-Id: I5828f3ee1b09b0b5ba894ea30689d179de347494
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The __attribute__ keyword is toolchain specific.
Change-Id: Ia3c0ff54d778785679c864704f8db6a3ba898948
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The PACK_STRUCT macro is being phased out in favor of using __packed.
Change-Id: I4f231ce99d104377436d14c5a8fa3eb0c6513b35
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The __attribute__ keyword is toolchain specific.
Change-Id: I2183d154ccdb9b5bed3bc245cc37cbf4c5cc62cc
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The names "__aligned(x)" and "__packed" are more generic than ALIGN_STRUCT(x)
and PACK_STRUCT respectively and are to be used in their stead.
NOTE: ALIGN_STRUCT(x) and PACK_STRUCT are now considered obsolete.
Change-Id: Ic5e859092643dde53bb8fa1117c6d877c2c4296f
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The routine _NewContextUsr() does not exist.
Change-Id: Ia20ddd3c9066930bd94e02850880a2f777081e82
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Completes the renaming of nanoFiberStart() -> fiber_fiber_start().
There is little value in listing the callers of _NewContext() in its function
header. Not only was the (deleted) list both incomplete and wrong, keeping
it around and properly updated requires error prone maintenance.
Change-Id: Ic45f51b285c027a2e8be331c0d28c16bdc97647d
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
There is little value in listing the callers of _NewContext() in its function
header. Not only was the (deleted) list both incomplete and wrong, keeping
it around and properly updated requires error prone maintenance.
Change-Id: Iec069847762fdef6b6b2f54ad23c69ab3fa6e592
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Checkpatch generates an error if any spaces follow the '*' when declaring
pointers.
Change-Id: If8fc4b185c5c508eadc78bcc9fa7a5050ccbdad4
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The length of time it took for the microkernel's test_fp_sharing test to run
was occasionally causing issues with sanity_chk. The test would take close
to five minutes to finish and sanity_chk has a five minute timeout for the
tests. To resolve this, the number of iterations for which the test executes
has been cut in half (from 1000 to 500).
Change-Id: I171b96f6af81a8b08d0367beecab536f16d1ca7e
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
As it is impossible for GETTIMER() to return a NULL pointer, task_timer_alloc()
will never return INVALID_OBJECT.
Change-Id: I270732f31033d9ce55847dc9324f215680865273
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
It is a fatal error if the microkernel is configured with either too few
command packets or too few timer packets.
NOTE: During this refactoring of _Cget(), not only is it renamed to
_nano_fiber_lifo_get_panic(), but it is moved into "nano_lifo.c".
Change-Id: I1d866cda1b444da04877f7eda03762b6e83c9a6f
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
This reason code will be used indicate that the kernel failed to allocate a
critical resource (such as a command packet or a timer packet).
Change-Id: I6d4c3d96fc70b2b8cab4027b1b8e4febf4d6c474
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Improves coding consistency by having _k_timer_alloc() use GETTIMER() instead
of _Cget().
Change-Id: I6575307ab6fe769bcf6dbf7e6c845b6cc4e338bd
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Future commits will prevent task_timer_alloc() from returning
INVALID_OBJECT.
Change-Id: Ib7ec2e0fafb625223d762d73f15c128f134169b3
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>