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>
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>
This is just a cosmetic change to unify anything interrupt related
under 'irq'.
Change-Id: Ib8804d194e11eb49526fda952d9efc0f2ffac2df
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Previously, CONFIG_PRINTK being false means none of functions related to
the UART console and serial are compiled into the binary. This
effectively means UART console and serial drivers are disabled.
By decoupling serial drivers from console related configs, additional
options are needed to disable serial drivers and UART console driver
itself. So add those options here to disable UART console and serial,
or else the resulting binaries will be too bloated.
Change-Id: If526e42404f22caf6a550795f8277ba742625883
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This restructures the device structs and now utilizes the new
driver initialization model. This is another step towards
converting the serial driver to the new driver model.
Note that the serial driver does not initialize the hardware
unless it is being used by another driver. The configuration
of the serial port needs to be done by the driver utilizing
the port (e.g. baud rate, interrupt priority, etc.).
Therefore, some serial ports are declared but not exactly
configured.
Also note that the UART console is being initialized at
the same time as the serial port. This will be removed
in future patch, so the UART console driver will do
its own initialization.
Change-Id: Idd89954b2d0649a557ba8c869ee96512fec898e4
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
... instead of an array index to a global array. This is
an intermediate step to make the drivers conform to
the new driver model.
This only changes from using a direct array index to using
device structs. The UARTs are still staticlly defined.
Later patches will make the drivers utilize the driver
initialization procedure specified by the driver model.
Change-Id: I18041bbb4b0efdf8ae87088fd000b391d0827e9b
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The test was doing some weird dance for computing the time the main task
had slept, context switching between the main task and a helper task.
The tick timestamp that marks the start of the sleep duration, which
should be taken before the main task goes to sleep actually was taken
after it went to sleep, by the helper task. This lead to weird results
sometimes on QEMU, where the main task would report that it had slept
for less time than requested.
Now instead, the main task takes its own tick timestamps, just before it
goes to sleep and right when it awakens.
The helper task takes a timestamp as well, to verify that it did do busy
work while the main task was sleeping. However, some error is allowed
there to compensate for some QEMU weirdness.
Change-Id: I4b642b49de8346be404000698eaa4ded070d4097
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
The build system is actually using the output directory
as the working dir for the Make session, using a symlink
to the source directory. Relative paths don't work correctly,
it only works now due to other issues in the build system
where absolute paths are being used instead for app source
files (causing other problems).
Change-Id: I2bcd82314692902f12da51c96fe912efb68bdc5e
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Instead of using a relative path in an #include, use a real -I path
in CFLAGS. This is still a hack, what we really need is support in
the build system for generating static libraries.
Change-Id: I7bc9aba3bcb7ec65f6a6119c3b2c6efc1de67e58
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
The DTLS server is running in Zephyr and is listening on port 4242
and when it receives DTLS UDP packet, it will reverse the data and
send it back to the caller.
Use the dtls-client application running in host to connect to
the dtls-server.
Change-Id: I3306cb242498019ffc9e0519b06061c36db96f78
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Now uses net_receive() with a proper timeout. Removed also
extra waits when sending data. Removed extra semaphores
and streamlined the code to act as fast as possible.
Change-Id: I577d4d5ff85bf13400fb6e157bc0023267658ba4
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
The echo-client app will run in Zephyr and will send network
packets to host process (echo-server) via SLIP.
Change-Id: Icaf941ce883aec82136ef909db67e43ab6b981f7
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Sample project README.txt files are supposed to follow a particular format
AND have a "Sample Output:" section.
Change-Id: I91fff1057e56bc222ab82d680018a673e19e479d
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Assigns more descriptive titles to the sample project README.txt files.
Change-Id: I4a0efdac481a8ed75a847871dbfe686e74a9f113
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Standardize on using the irq_lock/irq_unlock (non-inline) symbols
everywhere.
The non-inline versions provide absolutely no benefits, so they will be
removed in a subsequent commit, and the inline versions will have their
_inline suffix removed.
Change-Id: Ib0b55f450447366468723e065a60adbadf7067a9
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Basically, this does not work anymore:
task_timer_start(<timer>, 0, X, <sem>);
since it does not make much sense to have a timer with an expiry of 0
ticks. The code internally was setting the duration to be equal to the
period anyway. So, to achieve the same behaviour, do this:
task_timer_start(<timer>, X, X, <sem>);
This has the positive side-effect of removing a small block of logic
that was handling the cases where duration was 0.
Change-Id: Ic4af4a17a129f14af4fea445bcaddabe89c27131
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Reflect the fact that they are not used.
Change-Id: I6ea83cb2c7532e10988cbf4350edccb78f444328
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Align with the newer terminology used for microkernel internal symbols.
Change-Id: I623b383f90d9e37a49429a79774c7f7a4953bd5f
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
irq_handler_set, irq_priority_set and irq_disconnect have been made
private by prepending an underscore to their names:
irq_handler_set -> irq_handler_set
irq_priority_set -> irq_priority_set
irq_disconnect -> irq_disconnect
The prototypes have been removed from header files when possible, and
extern statements used in C code where they were called.
_irq_priority_set() for ARM is still in the header file because
IRQ_CONFIG() relies on it.
Change-Id: I2ad585f8156ff80250f6d9eeca4a249a4477fd9d
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Doing those checks went against the Zephyr philosophy of no error
checking unless absolutely necessary. Users should ensure themselves the
validity of their inputs to kernel APIs.
Change-Id: I21e5cd07ff9424ad61e81fd9d52ceef0c9584a8c
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
task_event_set_handler -> task_event_handler_set
Align with the "verb at the end" convention.
Change-Id: I8b72d41a20a7fdd4756f90765682e317289a241b
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
task_pipe_put_async -> task_pipe_block_put
task_mbox_put_async -> task_mbox_block_put
task_mbox_data_get_async_block -> task_mbox_data_block_get
task_mbox_data_get_async_block_wait -> task_mbox_data_block_get_wait
task_mbox_data_get_async_block_wait_timeout ->
task_mbox_data_block_get_wait_timeout
Previous names, focusing on 'async', were misleading, because:
- some of those APIs can be used synchronously as well
- other APIs can also do asynchronous transfer, and don't have 'async'
in their names
- the key concept of these APIs is that they use memory pool blocks
rather than raw data buffers.
Change-Id: I0c08a6cf950ab23bb4172ce25eb6f9886b037649
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Add a project that shows how to collect the
data from the profiler.
Change-Id: Ie9cc88290de594720739b30d4e872fe51d353f6e
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
As no default platform configuration uses the PIC/PIT, the project
configuration file 'prj_console_pc8253.conf' is no longer required.
Change-Id: Ic91922e9431a2853bb5fdcdd3e31e39f3dce90c4
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
As no default platform configuration uses the PIC/PIT, the project
configuration file 'prj_pc8253.conf' is no longer required.
Change-Id: I89fac2685d9fca0452e5ce9d9b035e102bd62d70
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Removes the following project configuration files:
- prj_console_float_pc8253.conf : PIT is no longer used
- prj_console_nofloat_*.conf : unsupported by Makefile
Change-Id: I72689fa56413947f3a552645c7b2ed5ad599ed71
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
This adds unit test for microkernel private memory maps.
The code piggybacks to the public memory map test (by
including the same source file), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private memory maps test move the memory maps inside
source code. So, both mdef files will need to be updated at
the same time.
Change-Id: Ia7f65f55b61d9fb0d42ba58d63662e914d69194e
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds unit test for microkernel private pipes.
The code piggybacks to the public pipe test (by
including the same source file), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private pipes test move the pipes inside source
code. So, both mdef files will need to be updated at
the same time.
Change-Id: I6fdb5eab7c3a1d6f4b72c26a3620cee0188b07a5
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds unit test for microkernel private tasks.
The code piggybacks to the public task test (by
including the same source file), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private tasks test move the tasks inside source
code. So, both mdef files will need to be updated at
the same time.
Change-Id: I2890f70be460c0e45208ce03d6e7897d2662f6f0
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds unit test for microkernel private mailboxes.
The code piggybacks to the public mailbox test (by
including the same source files), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private mailboxes test move the mailboxes inside source
code. So, both mdef files will need to be updated at
the same time.
Change-Id: I52ccc5931b1abfd3ae3d654f888d4a019268bba0
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds unit test for microkernel private FIFOs.
The code piggybacks to the public FIFOs tests (by
including the same source file), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private FIFOs test move some of the FIFOs
inside source code.
Change-Id: I4130ac540b10a31cd30f37890e9cc389af73e89b
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds unit test for microkernel private semaphores.
The code piggybacks to the public semaphores tests (by
including the same source files), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private semaphores test move some of the semaphores
inside source code.
Change-Id: Ic318bf6808514c5d335a46cb3e88ebf6000f4c3e
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Enhances the existing microkernel mutex test project to verify
that recursive mutex locking works properly. The implementation
utilizes the new in-file defined mutexes to demonstrate that
this capability also works.
[DL: Update the original patch from Allan Stephens
@ https://oic-review.01.org/gerrit/3256 to utilize
the new interface. Also updated the commit message. ]
Change-Id: Iaf8b4a5cd97d1dce53d6134a978cc565279d038c
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Removes references to obsolete BSP terminology from the sample projects and
replaces it with references to platforms where appropriate.
Change-Id: I6c8071a84f77c2cfe1458e3891d2b5e5afdaf8f9
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Fixes a couple of references to obsolete resource terminology; they now refer
to mutexes.
Change-Id: Ie7f837b6657891bdde9b09bb0ff2311fe4c19928
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The online help ./scripts/sanitycheck --help describes usage.
Most users will simply want to run with no arguments.
Change-Id: Icedbbfc22599a64a6e3dbbb808ff3276db06f2e0
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
It appears more conventional to require callers of function-type
macros to supply the trailing semicolon.
Change-Id: I40c67cf2ec8f7e85bdc9d8a2a29698b56d9715c6
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Removes references to old platform names.
Change-Id: I53e9994c794c6b4c292e776355a67b7923c2fdb8
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Renames supported platform configurations to conform to new platform
configuration naming scheme.
Example usage with PLATFORM_CONFIG:
make PLATFORM_CONFIG=basic_cortex_m3
make PLATFORM_CONFIG=basic_atom
make PLATFORM_CONFIG=basic_minuteia
make PLATFORM_CONFIG=galileo
xxx_ti_lm3s6965_defconfig -> xxx_basic_cortex_m3_defconfig
xxx_generic_pc_atom_n28xx_defconfig -> xxx_basic_atom_defconfig
xxx_generic_pc_minuteia_defconfig -> xxx_basic_minuteia_defconfig
xxx_quark_defconfig -> xxx_galileo_defconfig
Change-Id: I696eb8b9ad9a72d7a72efbe1341ce23500335764
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Uses PLATFORM_CONFIG to specify the configuration file instead of
KBUILD_DEFCONFIG. This name is more intuitive to Zephyr users and
it is not tied to kbuild.
Example usage:
make PLATFORM_CONFIG=generic_pc_atom_n28xx
make PLATFORM_CONFIG=generic_pc_minuteia
make PLATFORM_CONFIG=quark
make PLATFORM_CONFIG=ti_lm3s6965
make PLATFORM_CONFIG=fsl_frdm_k64f
Change-Id: I177608942c3e77c2f152743c862aad1d460c0e33
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
The generic_pc and generic_pc_pentium4 platform configurations are not
essential configurations to Zephyr.
Change-Id: Idd384bc7f180c035b1467e8b56fbfe206604658f
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Changes default KBUILD_DEFCONFIG to xxx_generic_pc_atom_n28xx_defconfig as
the xxx_generic_pc_defconfig configuration will not be supported in the future.
Note that like generic_pc, atom_n28xx runs on QEMU.
Change-Id: I49c5708e4b24dbf723eefc1efddfea4174d9cb1c
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Microkernel sample projects now use KBUILD_DEFCONFIG instead of BSP. This
is a necessary step in transitioning from BSPs to platforms.
Change-Id: I916819262cabf70296e15d9b1321fc383b88a805
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Updates Kconfig option names as part of transforming BSPs to platforms.
Change-Id: If397bcac8b058e5700e82c3cabbfe64588316d1d
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Revises the memory pool test project so that the maximum block size
is a power of 4 multiple of the minimum block size, as a reminder
of the required relationship between minimum and maximum block sizes.
Change-Id: Iff5480b7870c261d43c5a857c71a44beffc6c7f0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The echo server is listening on port 4242 and when it receives
UDP packet, it will reverse the data and send it back to the
caller. This can be used to verify that the IP stack is doing
something useful.
Change-Id: Ibbc48c21f2513d59480c5a3bb34c775eb3df8170
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>