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
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
console
crypto
data json: cleanup extra line in between macro/function parameters 2021-08-26 17:11:13 -05:00
debug
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
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
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
posix ARC: MWDT: workaround for double clockid_t definition 2021-08-13 13:43:19 -05:00
power
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
sys doc: replace courge with corge 2021-08-23 18:54:27 -04:00
task_wdt
timing
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
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
emul.h
exc_handle.h
fatal.h
init.h
irq_nextlevel.h
irq_offload.h
irq.h
kernel_includes.h
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
shared_irq.h
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
toolchain.h toolchain: cmake: Off-tree toolchains gets other.h included if selected 2021-08-26 09:28:19 -04:00
wait_q.h
zephyr.h