zephyr/include
Carlo Caione 0c2dabb4b9 ipc: rpmsg_multi_instance: Rework instance tracking
This patch is the first step to make the rpmsg_multi_instance usable in
a multi-core scenario.

The current driver is using a local driver variable (instance) to track
the number of allocated instances. This counter is practically used to
allocate to the instance the correct portion of the shared memory.

This is fundamentally wrong because this is assuming that it does exist
only one single shared memory region to split amongs all the allocated
instances.  When the platform has more than one core this is obviously
not the case since each couple of cores are communicating using a
different memory region.

To solve this issue we introduce a new struct rpmsg_mi_ctx_shm_cfg that
is doing two things: (1) it's carrying the information about the shared
memory and (2) it's carrying an internal variable used to track the
instances allocated in that region. The same struct should be used every
time a new instance is allocated in the same shared memory region.

We also fix a problem with the current code where there is a race
between threads when accessing the instance variable, so this patch is
adding a serializing mutex.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-08-27 06:44:08 -04:00
..
app_memory arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00
arch x86: pin timer related get functions 2021-08-26 21:16:22 -04:00
audio
bluetooth Bluetooth: ISO: Remove use of conn->channels for ISO 2021-08-26 13:14:22 -04:00
canbus modules: canopennode: move glue code to modules directory 2021-07-01 13:32:18 -04:00
console
crypto
data json: cleanup extra line in between macro/function parameters 2021-08-26 17:11:13 -05:00
debug kernel: remove object tracing 2021-05-07 22:10:21 -04:00
devicetree devicetree: add devicetree/pinctrl.h 2021-08-25 18:09:00 -04:00
dfu dfu: boot: Add implementation for multi-image swap type check 2021-08-26 09:13:13 -04:00
disk include: disk_access: Add a compat warning 2021-03-26 08:59:47 -04:00
display toolchain: migrate iterable sections calls to the external API 2021-08-12 17:47:04 -04:00
drivers emul: espi: Add ACPI Shared Memory functions 2021-08-26 13:14:05 -04:00
dt-bindings dt-bindings: b91-pinctrl: use new DT pinctrl accessors 2021-08-25 18:09:00 -04:00
fs include/fs: Remove definitions of ssize_t and off_t 2021-08-26 06:53:28 -04:00
ipc ipc: rpmsg_multi_instance: Rework instance tracking 2021-08-27 06:44:08 -04:00
kernel kernel: macro to define pinned kernel thread stacks 2021-08-26 21:16:22 -04:00
linker kernel: app_smem: allowing pinning memory partitions 2021-08-26 21:16:22 -04:00
logging toolchain: migrate iterable sections calls to the external API 2021-08-12 17:47:04 -04:00
lorawan lorawan: port oriented downlink callbacks 2021-04-30 13:05:10 -05:00
mgmt subsys/mgmt/hawkbit: Prevent multiple instances of hawkbit_probe 2021-08-18 20:10:21 -04:00
modbus
net toolchain: migrate iterable sections calls to the external API 2021-08-12 17:47:04 -04:00
pm pm: device: Fix pm_device_state_set documentation 2021-08-23 17:46:33 -04:00
portability portability: move cmsis api headers 2021-04-20 08:45:05 -04:00
posix ARC: MWDT: workaround for double clockid_t definition 2021-08-13 13:43:19 -05:00
power pm: deprecate power/power.h header 2021-05-05 18:35:49 -04:00
random
settings toolchain: migrate iterable sections calls to the external API 2021-08-12 17:47:04 -04:00
shell toolchain: migrate iterable sections calls to the external API 2021-08-12 17:47:04 -04:00
stats
storage storage/stream: Add persistent write progress to stream_flash 2021-04-23 15:01:32 -05:00
sys doc: replace courge with corge 2021-08-23 18:54:27 -04:00
task_wdt
timing timing: guard the header with CONFIG_TIMING_FUNCTIONS 2021-04-06 16:43:55 -04:00
toolchain linker: allow symbols to be in a named __noinit section 2021-08-26 21:16:22 -04:00
tracing tracing: Add k_work_queue_init info 2021-08-25 22:07:04 -04:00
usb include: usb: deprecate usb_common.h and usbstruct.h 2021-08-03 13:20:07 +02:00
zephyr
cache.h cache: Do not warn on unused parameters 2021-05-25 07:05:22 -05:00
device.h device: give device state variables a linker section 2021-08-26 21:16:22 -04:00
devicetree.h devicetree: add devicetree/pinctrl.h 2021-08-25 18:09:00 -04:00
ec_host_cmd.h include: Move ec_host_cmd.h to mgmt/ec_host_cmd.h 2021-04-22 12:51:16 -04:00
emul.h include: Move emul.h to drivers/emul.h 2021-04-22 12:51:01 -04:00
exc_handle.h
fatal.h
init.h init: tweak Zephyr .init* section name conflicting with toolchain 2021-04-26 14:15:43 -04:00
irq_nextlevel.h
irq_offload.h irq_offload: Remove ifdef from the api 2021-04-29 14:50:35 +02:00
irq.h doc: fix display of the ISR_DIRECT_DECLARE example usage 2021-05-07 20:52:02 -04:00
kernel_includes.h kernel: move internal headers into include/kernel 2021-06-16 20:38:55 -04:00
kernel_structs.h kernel: drop unused priority related definitions 2021-08-17 17:52:17 -04:00
kernel_version.h
kernel.h kernel: each mem slab buffer has its own section attribute 2021-08-26 21:16:22 -04:00
ptp_clock.h include: Move ptp_clock.h to drivers/ptp_clock.h 2021-03-25 10:09:33 +02:00
shared_irq.h drivers: intc: shared_irq: remove internal structs from header 2021-04-13 13:03:33 -04:00
spinlock.h
sw_isr_table.h
sys_clock.h
syscall_handler.h
syscall.h kernel: syscall: pin generated inline functions 2021-08-26 21:16:22 -04:00
timeout_q.h kernel/arch: cleanup function definitions 2021-04-01 05:34:17 -04:00
toolchain.h toolchain: cmake: Off-tree toolchains gets other.h included if selected 2021-08-26 09:28:19 -04:00
wait_q.h kernel: move internal headers into include/kernel 2021-06-16 20:38:55 -04:00
zephyr.h