Commit graph

17,121 commits

Author SHA1 Message Date
Yonattan Louise
474a6a36af Rename microkernel struct field 'Enqp' to 'enqueue_point'.
Rename field 'Enqp' of the struct:
- '_k_fifo_struct' in the file include/microkernel/base_api.h

Change-Id: I182a8be82088b808f8ccedcf76deec249cd4d2c0
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
48b22f169d Rename microkernel struct field 'Endp' to 'end_point'.
Rename field 'Endp' of the struct:
- '_k_fifo_struct' in the file include/microkernel/base_api.h

Change-Id: I83c351cb8a0e33c8a0e49adb63307c2cd71f5395
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
5e9b9214d9 Rename microkernel struct field 'Base' to 'base'.
Rename field 'Base' of the structs:
- '_k_fifo_struct' in the file include/microkernel/base_api.h
- '_k_mem_map_struct' in the file include/microkernel/base_api.h

Change-Id: Id21c01e26c8cad7b6b5ba350b6c9f5d5b78acaae
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
82136f8c0b Rename microkernel struct field 'Esize' to 'element_size'.
Rename field 'Esize' of the structs:
- '_k_fifo_struct' in the file include/microkernel/base_api.h
- '_k_mem_map_struct' in the file include/microkernel/base_api.h

Change-Id: If9a6636cb9dc637e62e8dd5335923ad5067cde5a
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
612baae6ed Rename microkernel struct field 'Confl' to 'num_conflicts'.
Rename field 'Confl' of the struct:
- '_k_mbox_struct' in the file include/microkernel/base_api.h

Change-Id: Ibfcfc933492af947950baf2b89ac25ea6671b749
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
8c7a2db328 Rename microkernel struct field 'Count' to 'count'.
Rename field 'Count' of the structs:
- '_k_mbox_struct' in the file include/microkernel/base_api.h
- '_k_mutex_struct' in the file include/microkernel/base_api.h
- '_k_sem_struct' in the file include/microkernel/base_api.h
- '_k_fifo_struct' in the file include/microkernel/base_api.h
- '_k_pipe_struct' in the file include/microkernel/base_api.h
- '_k_mem_map_struct' in the file include/microkernel/base_api.h
- 'pool_block' in the file kernel/microkernel/include/micro_private_types.h
- 'evstr' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: I85c0c36f89f8189dedb242189ceb1decd8bffcfb
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
1de74fb559 Rename microkernel struct field 'Waiters' to 'waiters'.
Rename field 'Waiters' of the structs:
- '_k_mutex_struct' in the file include/microkernel/base_api.h
- '_k_sem_struct' in the file include/microkernel/base_api.h
- '_k_fifo_struct' in the file include/microkernel/base_api.h
- '_k_mem_map_struct' in the file include/microkernel/base_api.h

Change-Id: I32db6d6213d8a3677c361f7542fdfd5444030c8a
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
375939d1cd Rename microkernel struct field 'Level' to 'level'.
Rename field 'Level' of the struct:
- '_k_mutex_struct' in the file include/microkernel/base_api.h
- '_k_sem_struct' in the file include/microkernel/base_api.h

Change-Id: Iec966b3973db05d37a32b24a2bc546a36bc27b3c
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
92de544c28 Rename microkernel struct field 'OwnerOriginalPrio' to 'original_owner_priority'.
Rename field 'OwnerOriginalPrio' of the struct:
- '_k_mutex_struct' in the file include/microkernel/base_api.h

Change-Id: I7c9f8c9626567dba19a7e1ef593744d50c7f62c4
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
f51a979ef4 Rename microkernel struct field 'OwnerCurrentPrio' to 'current_owner_priority'.
Rename field 'OwnerCurrentPrio' of the struct:
- '_k_mutex_struct' in the file include/microkernel/base_api.h

Change-Id: I31066ea24872a0de8ae7a01ed13b0b85c61637ac
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
4484a85683 Rename microkernel struct field 'Owner' to 'owner'.
Rename field 'Owner' of the struct:
- '_k_mutex_struct' in the file include/microkernel/base_api.h

Change-Id: I05ac935b7ee8d87fd6cbbafc2cab2386305b455c
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
cd8d5f445e Rename microkernel struct field 'Readers' to 'readers'.
Rename field 'Readers' of the struct:
- '_k_mbox_struct' in the file include/microkernel/base_api.h
- '_k_pipe_struct' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: Id8b225d05658127eb4254b47dbf7eb04a9a2e2a2
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
85f442f781 Rename microkernel struct field 'Writers' to 'writers'.
Rename field 'Writers' of the struct:
- '_k_mbox_struct' in the file include/microkernel/base_api.h
- '_k_pipe_struct' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: I3921be133d137e53b9473072e585710233c4d828
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
13d583dc06 Rename microkernel struct field 'Args' to 'args'.
Rename field 'Args' of the struct:
- 'k_proc' in the file include/microkernel/base_api.h
- 'k_args' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: I5847a2f1e9c7dd34dea37857b4fadeb37ced489b
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
3d0f283cb9 Rename microkernel struct field 'fabort' to 'fn_abort'.
Rename field 'fabort' of the struct:
- 'k_proc' in the file include/microkernel/base_api.h

Also rename variable instances related to this struct field.

Change-Id: I9523a567b23c578e73c20810e33a15ba733ba238
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
71da62594c Rename microkernel struct field 'fstart' to 'fn_start'.
Rename field 'fstart' of the struct:
- 'k_proc' in the file include/microkernel/base_api.h

Also rename variable instances related to this struct field.

Change-Id: Ic9750c0bcaefd1dcedfefe94b8cdd31519ab5249
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
36d55187f2 Rename microkernel struct field 'Group' to 'group'.
Rename field 'Group' of the struct:
- 'k_proc' in the file include/microkernel/base_api.h

Change-Id: I0d83ec7e82c67a7c2c37df8bb0a5d83b2109a8ed
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
839c84666f Rename microkernel struct field 'State' to 'state'.
Rename field 'State' of the struct:
- 'k_proc' in the file include/microkernel/base_api.h

Change-Id: I545ad7fa0a9b1f100dfb9a639e6730bee5d30905
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:29 -05:00
Yonattan Louise
617501354c Rename microkernel struct field 'Ident' to 'id'.
Rename field 'Ident' of the struct:
- 'k_proc' in the file include/microkernel/base_api.h

Change-Id: Iec787e0a8aa1791c968b371017cf96211a60cef1
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
de4d3b51fc Rename microkernel struct field 'Prio' to 'priority'.
Rename field 'Prio' of the structs:
- 'k_proc' in the file include/microkernel/base_api.h
- 'Elem' in the file include/misc/lists.h b/include/misc/lists.h

Change-Id: I2fd6966af29b998a3849bcabc5cfee110e76202c
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
09067bbe5b Rename microkernel struct field 'Back' to 'prev'.
Rename field 'Back' of the structs:
- 'k_proc' in the file include/microkernel/base_api.h
- 'k_timer' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: I0c7cec34ec64462f85f43f8da4e61d4a651ac14e
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
a896d2f859 Rename microkernel struct field 'Forw' to 'next'.
Rename field 'Forw' of the structs:
- 'k_proc' in the file include/microkernel/base_api.h
- 'k_timer' in the file kernel/microkernel/include/micro_private_types.h
- 'k_args' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: Ie45a71943dca9cb16b53bbc345d1ea16f8d7c50b
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
d4a5054a3f Rename microkernel struct field 'poolid' to 'pool_id'.
Rename field 'poolid' of the struct:
- 'kmemory_pool_t' in the file kernel/microkernel/include/micro_private_types.h

Change-Id: I96466891ed2efca8c06bd94b40d15bd478d0de33
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Dan Kalowsky
9c2156731a i2c: Cleaning up public interface
The public interface has been found to need a few additional
changes, and a few clean ups to functionally work with an IP block.

- Removing the faulty (0 << x) defines.
- Updating the write/read functions to take the destination address
- Adding in a union and struct for the dev_config access

Change-Id: I4820aa64a96180ca46daac94113b04a4ca1bc84a
Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
2016-02-05 20:15:28 -05:00
Tomasz Bursztyka
d96943b04c spi: Add support for Intel's SPI controller
Such controllers are found in Quark's X1000 series, and thus are found
on Galileo boards v1 and v2.

Change-Id: Ib71486c9f27de1b6c48ce3cb3dd138d69833c2ea
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:28 -05:00
Tomasz Bursztyka
7b34e0dcfa pci: Add helper functions to enable mem mapped registers
This will be useful to enable memory mapped registers for PCI based
drivers that requires it. Removing redundant setting as well.

Change-Id: I52e47d01263a2de31c0c9f52ff65cc7e2734cf08
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-02-05 20:15:28 -05:00
Tomasz Bursztyka
ff39559146 pci: Add support for filtering by function
This will be useful for PCI based drivers to integrate fully within
the device driver model, where they will have to provide the function
they are found.

Change-Id: I7d64a4c6727cee52cbcb743c859cda43ac1a853b
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-02-05 20:15:28 -05:00
Tomasz Bursztyka
507decb731 sys_io: Add memory bit manipulation functions
This will be helpful also in drivers mostly, where non-atomic bit
setting could be unnecessary.

Change-Id: I10c069387d1045f14337b3ac8acfc7b6c1f106c3
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:28 -05:00
Tomasz Bursztyka
c6d0bea109 API: Add a generic API for port and mem mapped registers functions
sys_io.h header file declares the generic API for such operations. It
properly separates port and memory mapped registers, with declaring
respective types: io_port_t and mm_reg_t.

Memory mapped registers are the most common type of registers drivers
will play with. Thus providing generic sys_readX/sys_writeX functions in
sys_io.h. Those are defined as inline as they are really simple.

Ports are mostly (always?) found in x86 architecture.
Currently no ARM or ARC header file propose any implementation of
those. If really necessary (a cross-architecture driver using
sys_in/sys_out functions), those architecture will provide the proper
implementation or at least a macro gluing those towards
sys_read/sys_write.

Change-Id: If77590d4bcefcdfa6aa181a88ced342f8565d5b8
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:28 -05:00
Tomasz Bursztyka
dd12326e86 spi: Fix the generic API
- Add a spi_slave_select function for controllers supporting per-slave
  addressing
- Adding one full-duplex r/w function
- All r/w function go through one unique driver call
- Only one callback for all

Change-Id: Ie97e6a6119b2b34093598a8eb5dbfe0665bf08f3
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-02-05 20:15:28 -05:00
Anas Nashif
2b8af552f2 remove duplicate 'inline' declaration specifier
Change-Id: Ib5bc7a402874e2ec215d4571e25e75e161453f05
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
5c6ef8fdb5 Profile low condition events.
Add the sleep events point for x86 and ARM arquitectures that gives
information about when the CPU went to sleep mode, when it woke up
and which interrupt causes the CPU to awake.

Change-Id: Iaa06a678eab661357d084ee1f79c4cfcf19bf85d
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
d2108bf084 Profile interrupt events.
Add the interrupt profile points for x86 and ARM arquitectures. This
gives information regarding the time when interrupts occur.

Change-Id: Ic876c0e7f9e8819d53e0578416f09146f4456d3d
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Yonattan Louise
46feabf7f7 Add _ASMLANGUAGE guard to the event logger and the profiler.
Add _ASMLANGUAGE guard to allow using the header file in assembly
code.

Change-Id: I7feb6c720e335c6d4baeac274a6f550cdfed7b78
Signed-off-by: Yonattan Louise <yonattan.a.louise.mendoza@intel.com>
2016-02-05 20:15:28 -05:00
Benjamin Walsh
4c13d8273e toolchain: rename FUNC_ALIAS parameters
Make them less confusing:

- new_alias: alias to be created
- real_func: the real function to create an alias of
- return_type: return type of the function

Change-Id: I1007b6b4c93c5ea9c817f72d0e68c0fb40e92190
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
5586c6a1a1 sys_clock: add missing fiber system clock APIs
tick_get(), tick_get_32() and cycle_get_32() APIs were missing for
fibers.

Change-Id: Ic03880714f9f83f57b5c0599bc04b680fabea533
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
1611816a7d sys_clock: move header of nano_cycle_get_32 to nanokernel.h
Change-Id: I9c33e46a6142f26633ba4e5812c288ef470cceaa
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
87eeaa3249 sys_clock: rename timer_read to _sys_clock_cycle_get
Follow coding conventions.

Change-Id: I3ca5d1cf4eaacfc09d5e8c44c49be447549537c8
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
fe40133cd5 sys_clock: move API headers from k_ticker.c to ticks.h
Change-Id: Ia8d740df08d3bc5ac8857ca87272360375945c7f
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
97f2622f55 arm: rename instances of CortexM
Directory names: CortexM -> cortex_m
Code comments: CortexM -> Cortex-M

Change-Id: If946ed25fac863e0be9dbb6f6c275199402b0b0a
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
ed3a1e2f51 nanokernel: remove very last remnants of objects named 'chan'
Hopefully, this is the very last time a nanokernel object will have been
referred to by the 'channel' terminology.

Change-Id: Ied6243220803492af174571bfed328da007f2c5d
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
2d12752637 sys_clock: make public some timing utilities
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>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
4dca2dfad3 util: make is_power_of_two() a public utility
Somewhat useful utility that should only have one implementation, so it
can impede on the normally-available application namespace.

Change-Id: I085850177c231fdf58634f97e897c4d2e1a5cffb
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
0dcad8331b clarify use of term 'context'
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>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
bed144b179 microkernel: rename k_proc to k_task
k_proc was a legacy leftover that does not make any sense, since there
is no concept of a "process" in the system. Rather, that data structure
refers to a 'task control block', i.e. the representation of a task
execution context from the microkernel's point-of-view (not to confuse
with the 'struct ccs', the representation of a thread execution context,
from the nanokernel's point-of-view).

Change-Id: Ic29db565af023be629ce740bbcb652ece7dc359f
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Daniel Leung
ed9cdac197 i2c: change inline functions to static inline
When compiling with optimization level 0 (-O0), the linker complains
about missing references to uart functions. This is due to compiler
treating this functions as extern, since -O0 disables function inlining,
as described in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49653

So change the declaration to static inline.

Change-Id: I5963153dc1efd22083b6b91ae2b70c11d602c6c6
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:26 -05:00
Daniel Leung
94718c7392 uart: change inline functions to static inline
When compiling with optimization level 0 (-O0), the linker complains
about missing references to uart functions. This is due to compiler
treating this functions as extern, since -O0 disables function inlining,
as described in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49653

So change the declaration to static inline.

Change-Id: I59607cffbd1cae141a9eeaca699549ebf8203061
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:26 -05:00
Anas Nashif
4ca0b0b96b add missing includes from toolchain
Change-Id: Ic60955df6644d2a15897c6b6c082890b2ccd2371
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:26 -05:00
Daniel Leung
8729b3c802 k20: sim: clean up camel case and doxygen for file description
This converts away from camel case according to the coding style.
Also, the file description has been made into doxygen style.

Change-Id: Ib4dd85a4a96e4e87279c92fa243d3f860ebe63f2
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:26 -05:00
Daniel Leung
bd2e264d26 serial: k20: cosmetic changes to comments
Converts the file description to doxygen format, and updates
the information inside. Also removes empty lines, updates
the comments for function, and adds missing comments.

Change-Id: I7610e8667cd85feb0c4c853b44880f7e29b6c05a
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:26 -05:00