Commit Graph

45 Commits

Author SHA1 Message Date
Peter Mitsis
4eae500445 mutex: Simplify task_mutex_lock() API family
Changes the mutex API so that the timeout parameter must be specified
when invoking task_mutex_lock() thereby obsoleting the following APIs:
    task_mutex_lock_wait()
    task_mutex_lock_wait_timeout()
    _task_mutex_lock()

Change-Id: I15d4bddbdc2707b3cbdab672498170da1c47b8db
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
9cc9bdcd53 mem_pool: Simplify task_mem_pool_alloc() API family
Changes the mem_pool API so that the timeout parameter must be specified
when invoking task_mem_pool_alloc() thereby obsoleting the following APIs:
	task_mem_pool_alloc_wait()
	task_mem_pool_alloc_wait_alloc()
	_task_mem_pool_alloc()

Change-Id: Ifa88f13bca98ca3c7d0e1a3b64b40a00068619e0
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
e2cb5f5bdd mem_map: Simplify task_mem_map_alloc() API family
Changes the mem_map API so that the timeout parameter must be specified
when invoking task_mem_map_alloc() thereby obsoleting the following APIs:
    task_mem_map_alloc_wait()
    task_mem_map_alloc_wait_alloc()
    _task_mem_map_alloc()

Change-Id: I8905d07fa4b8c3729ca144e8f09e7ad0c7bf0f43
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
f863d66dd8 semgroup: Simplify task_sem_group_take() API family
Changes the semaphore API so that the timeout parameter must be specified
when invoking task_sem_group_take() thereby obsoleting the following APIs:
	task_sem_group_take_wait()
	task_sem_group_take_wait_timeout()
	_task_sem_group_take()

Change-Id: I64e3f4c9f1e74a86b49d4a0e55b82ecee7733220
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
40eba989e2 semaphore: Simplify task_sem_take() API family
Changes the semaphore API so that the timeout parameter must be specified
when invoking task_sem_take() thereby obsoleting the following APIs:
	task_sem_take_wait()
	task_sem_take_wait_timeout()
	_task_sem_take()

Change-Id: I746d5c966a3b81ffe014333af51aa10ea8a63263
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
57c7977ecf pipes: Simplify task_pipe_get() API family
Changes the pipe API so that the timeout parameter must be specified
when invoking task_pipe_get() thereby obsoleting the following APIs:
	task_pipe_get_wait()
	task_pipe_get_wait_timeout()
	_task_pipe_get()

Change-Id: If249e57d086fef15fdc1616965f53b310ac9cf9d
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
f5d90e1584 pipes: Simplify task_pipe_put() API family
Changes the pipe API so that the timeout parameter must be specified
when invoking task_pipe_put() thereby obsoletingg the following APIs:
	task_pipe_put_wait()
	task_pipe_put_wait_timeout()
	_task_pipe_put()

Change-Id: Ie5693716828e9d8681434c0d130792279ab97acc
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
d3e4b72da2 mailbox: Simplify task_mbox_data_block_get() API family
Changes the mailbox API so that the timeout parameter must be specified
when invoking task_mbox_data_block_get() thereby obsoleting the
following APIs:
    task_mbox_data_block_get_wait()
    task_mbox_data_block_get_wait_timeout()
    _task_mbox_data_block_get()

Change-Id: I284be505e6de792ba5483611d1299063162550e1
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
a67b7070b7 events: Simplify task_event_recv() API family
Changes the event AIP so that the timeout parameter must be specified
when invoking task_event_recv() thereby making the following APIs obsolete:

	task_event_recv()
	task_event_recv_wait()
	task_event_recv_wait_timeout()
	_task_event_recv()

Change-Id: I165a8efbdedb431fee0c20e9ad1f1942c04124c0
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
1a163f53b7 task_irq: Simplify task_irq_test() API family
Changes the task IRQ API so that not only does task_irq_test() become
task_irq_wait(), but that the timeout parameter must also be specified.
Use of task_irq_wait() obsoletes the following APIs:
	task_irq_test()
	task_irq_test_wait()
	task_irq_test_wait_timeout()
	_task_irq_test()

Change-Id: Ie4d15f29941429249e9fbb258d29ec2b3ae73a93
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
b4ba8087e7 mailbox: Simplify task_mbox_get() API family
Changes the mailbox API so that the timeout parameter must be specified
when invoking task_mbox_get() thereby obsoleting the following APIs:
    task_mbox_get_wait()
    task_mbox_get_wait_timeout()
    _task_mbox_get()

Change-Id: Ie028223ec342666e61d3d69750aec37dbe2b493e
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Peter Mitsis
96116cadbb mailbox: Simplify task_mbox_put() API family
Changes the mailbox API so that the timeout parameter must be specified
when invoking task_mbox_put() thereby obsoleting the following APIs:
	task_mbox_put_wait()
	task_mbox_put_wait_timeout()
	_task_mbox_put()

Change-Id: I174857bdf32fe7e59b79838185666cd557312814
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:25:05 -05:00
Allan Stephens
ed78a03da2 doc: Enhance information about microkernel mailboxes
Completely overhauls Kernel Primer section on mailboxes to fill in
a host of omissions, correct errors, and improve readability.

Change-Id: I7f27230f59a593f6b7f44f399363ba423156b43e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:25:03 -05:00
Allan Stephens
6b07c1d548 doc: Update descriptions for semaphore APIs
Standardizes appearance, corrects errors, improves readability,
and fils in gaps. Also relocates documentation for internal APIs.

Removes mention of non-existent task_sem_group_take() API from
the Kernel Primer document. The microkernel's semaphore group logic
currently allows a task to take a semaphore from a semaphore group
in a blocking manner.

Change-Id: Ib41a43775a97483a5adc552b70575ae4269aba35
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:53 -05:00
Dmitriy Korovkin
a4f6a32169 doc: Add flags to irq_connect(), IRQ_CONNECT_STATIC() and task_irq_alloc()
Change-Id: I671208ac3b1e9f6c26917e86c99337ff195ae2d4
Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
2016-02-05 20:24:44 -05:00
Allan Stephens
7ed2678916 doc: Remove documentation for microkernel command packet sets
Update semaphore documentation to remove mention of command
packet sets, which no longer exist.

Change-Id: I19303f7f497b7d8299723d01c91ae4f4513162f0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:42 -05:00
Allan Stephens
6fe1e2357f doc: Fix typo in description of microkernel semaphores
Change-Id: Iaa5e511aa0ca901fcf2f57f49dd4816898fada37
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:36 -05:00
Allan Stephens
935a809cc6 doc: Add documentation for using private events
This reflects the changes made in commit df6be15aa5...

Change-Id: Ibe1bc167390268c0e335a0b4060a600ef55d1add
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:24:36 -05:00
Rodrigo Caballero
c1c1ffe7f7 doc: Change API tables to lists in the Kernel Primer.
The tables in the Kernel Primer are changed to lists. Making it easier
to update them. Other minor changes were done to ensure consitency.
The :c: and :cpp: markup has been fixed. When the documentation for a
call exists, then it is linked.

Change-Id: I8f389a0a0ca7c5fe904c0a1fa520e2e499f1001b
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:24:29 -05:00
Gerardo A. Aceves
30a04a2250 doc: Edit redundant use of file
Removed the word "file" after all the MDEF to avoid redundancy
Edited single line under overview folder in order to
gramatically correct the use of "file".

Change-Id: Ie785aa8c620f095fcd4171ef4efd2d056d6fa04b
Signed-off-by: Gerardo A. Aceves <gerardo.aceves@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:24:22 -05:00
Gerardo A. Aceves
a049bf3de8 Change minor punctuation characters.
Corrected some punctuation characters to improve readability.

Change-Id: I44930a8a314f9fa5f3da216df3c7d2262c9cb1ef
Signed-off-by: Gerardo A. Aceves <gerardo.aceves@intel.com>
2016-02-05 20:24:19 -05:00
Anas Nashif
bcbea5dbc7 doc: remove doxygen index and add groups instead
Instead of loading all indexed doxygen symbols in one page, we
use the defined groups to load the API documentation in the specific
sections and reduce the trash coming from doxygen to just what we
need.

Change-Id: I030e3de33e8cc26871f95cd45a50af0cae1bb942
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:58 -05:00
Allan Stephens
dfa734d57e doc: Enhance information about microkernel pipes
Revises and supplements information on concepts.

Change-Id: I7dd9dd2e99cd5d975cc0f617b076dcf13c414fd0
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:35 -05:00
Allan Stephens
945ed24597 doc: Clarify requirements for referencing microkernel objects
Revises microkernel object sections to make it clear that objects
are referenced by name. (e.g. MY_TASK) Also adds text to make it
clear that task groups are named entities.

Change-Id: I3480f3526293dae7a0bab2006250c97334e04dfb
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:35 -05:00
Peter Mitsis
5089655d57 Add PRIORITY_CEILING note to mutex document
Adds a note to the mutex documentation indicating that the priority
inheritance algorithm caps the raising of the priority at PRIORITY_CEILING.

Change-Id: Ie87efe83e3fa0fc8ba55e584692f8de44347eb1a
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:15:34 -05:00
Peter Mitsis
7f7020b2cf Update priority inheritance in mutex document
Corrects the description of the priority inheritance algorithm used by mutexes.
It also draws attention to one of its short-comings.

Change-Id: I5aba6221fb9e9ed78e3bfe6509ca3d6e13743e71
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:15:34 -05:00
Allan Stephens
67ff063acd doc: Add info on configuring the microkernel server fiber
Change-Id: I401bd874e862a03e6f80762699ba2bb6211adb78
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:34 -05:00
Allan Stephens
e5f3e42b3c doc: Minor supplements to microkernel task services
Adds in a couple of pieces of useful information which improve
alignment between task documentation and fiber documentation.

Change-Id: I04b65aa6d125842205de3dd6a65dbe2b8e6853d6
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:34 -05:00
Allan Stephens
60bd3c7d3a doc: Add section on nanokernel application use of tasks
Adds a short section describing the nanokernel's background task.
This section is modelled on the section for microkernel tasks,
but excludes areas that aren't applicable to the background task.

Change-Id: Id209bad8ada222347cfcd01a3c822ca486bb48db
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:32 -05:00
Allan Stephens
2aeff35a1c doc: Add section on microkernel application use of fibers
Adds a short section to make clear that microkernel applications
can utilize fibers, and can even use them with a few microkernel
object types. Revises some link names to account for the fact that
there are now 2 sections describing fiber services.

Change-Id: I5960aea8b3959bb4a383f919882419effff5917d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:32 -05:00
Allan Stephens
f808c1c9a5 doc: Enhance information about microkernel FIFOs
Revises description to follow the pattern used for other microkernel
object types. Expands the description to provide additional useful
details about the operation and use of FIFOs.

Change-Id: If4d84c301922158c2c7cae26cb1520294397876a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:32 -05:00
Allan Stephens
88a4ba1a35 doc: Enhance information about microkernel tasks
Revises description to follow the pattern used for other microkernel
documentation sections. Revises the description to provide additional
important information, and to leave out information that isn't really
useful to application developers.

Change-Id: I4eac50bbb597258baf199ede925f14097f9ec75a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:32 -05:00
Allan Stephens
9020d7654e doc: Revise description for microkernel semaphore objects
Revises and supplements information on concepts and use cases.

Change-Id: I1ae8f9382b6fd98af59f2a8ef555830981807d5d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:26 -05:00
Allan Stephens
f55bbbcc31 doc: Revise description for microkernel event objects
Revises and supplements information on concepts, use cases, and
how to define an event.

Change-Id: I1de8c87d069288c14d6f378d96590fcc3d569801
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:26 -05:00
Allan Stephens
1201a73002 doc: Reorder listing of microkernel synchronization objects
Now ordered from most basic semaphore type (events) to most complex
semaphore type (mutexes).

Change-Id: I4cf69ee2b87b10b8d962f963b3631d9bdae608e9
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:26 -05:00
Allan Stephens
61fa627f74 doc: Terminology change - signalling -> synchronization
The kernel's services previously referred to as "signalling services",
which include object types such as semaphores, events, and mutexes,
are now referred to as "synchronization services". This term more
clearly conveys their use as a means to synchronize the operation
of two or more entities within the kernel.

Change-Id: Id24b96f2daf7d866a2d134c222e3d0b6fc568f5a
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:26 -05:00
Allan Stephens
a6c11231ad doc: Fix typo in microkernel task documentation
Corrects example code by eliminating unneeded characters.

Change-Id: I9bbc8a19b6b66807a366a2d514d62495b9371046
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:26 -05:00
Allan Stephens
d44e380496 doc: Clean up instructions for defining microkernel objects
Revise instructions to take advantage of the "public object"
and "private object" terminology now covered in the kernel
overview documentation. Also incorporates some missing information
the users need to be aware of when defining certain object types.

Change-Id: Ic0b359baf4443714c80200fdaff9cf2d253e6b99
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:26 -05:00
Benjamin Walsh
751c765079 events: rename task_event_set_handler()
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>
2016-02-05 20:15:21 -05:00
Benjamin Walsh
87564a4602 pipes/mailboxes: rename functions using mem blocks
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>
2016-02-05 20:15:21 -05:00
Allan Stephens
10ba8f7e6e doc: Improve accessibility of microkernel and nanokernel info
Removes an unnecessary level of headings in the microkernel and
nanokernel sections of the Zephyr kernel documentation, providing
users with direct access to the major service areas of the
microkernel and nanokernel from the main kernel web page. Also
greatly reduces the introductory text for these 2 sections,
since users can now easily find out what the various subsections
provide by simply clicking on them.

Change-Id: Ibc5858daad49cfb6567dfad285b7a1d5a755d149
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:21 -05:00
Allan Stephens
432a737106 doc: Restore information about microkernel task IRQs
Re-incorporates task IRQ information into microkernel documentation.
Also eliminates an unnecessary hidden space character at the end of
every line.

Change-Id: Ib1328dfae7a53bcf8abead4a5ebf1cbaa5610826
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:20 -05:00
Allan Stephens
b36e887d47 doc: Add information about microkernel timers
Describes microkernel timer use only. Information about kernel
clocks and clock-related APIs will be documented elsewhere.

Change-Id: If868d9d93a0869e9535fbe0f807e72ccf816d15d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:20 -05:00
Allan Stephens
3ca9a7413d doc: Task updates
Adds information about offloading work from a task to a fiber.

Change-Id: I600c47351158f1fbf80cc5da971560b0f028b979
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:15:20 -05:00
Rodrigo Caballero
4d8b60adca Doc: Change the Microkernel Objects to the Microkernel Services section.
Moves the Microkernel Object documentation to a new Microkernel Services
section within the Kernel Primer. Labels, cross-references, figures,
headings and filenames were updated to reflect the new structure. 

Change-Id: Ia2a91410a94caa8a97bb8211db5afc84b5dc0974
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00