Lines Matching +full:shared +full:- +full:memory
1 /* SPDX-License-Identifier: GPL-2.0 */
12 * Tegra IVC is a communication protocol that transfers fixed-size frames
13 * bi-directionally and in-order between the local CPU and some remote entity.
14 * Communication is via a statically sized and allocated buffer in shared
15 * memory and a notification mechanism.
17 * This API handles all aspects of the shared memory buffer's metadata, and
19 * typically contain some higher-level protocol. The notification mechanism is
24 * frame, process that frame's memory buffer (fill or read it), and then
33 * struct tegra_ivc - In-memory shared memory layout.
40 * struct tegra_ivc - Software state of an IVC channel.
48 * rx_channel - Pointer to the shared memory region used to receive
53 * tx_channel - Pointer to the shared memory region used to send
58 * r_pos - The position in list of frames in rx_channel that we are
63 * w_pos - The position in list of frames in tx_channel that we are
68 * nframes - The number of frames allocated (in each direction) in
69 * shared memory.
73 * frame_size - The size of each frame in shared memory.
77 * notify - Function to call to notify the remote processor of a
84 * tegra_ivc_read_get_next_frame - Locate the next frame to receive.
98 * tegra_ivc_read_advance - Advance the read queue.
102 * re-use it to transmit further data. Subsequent to this function returning,
112 * tegra_ivc_write_get_next_frame - Locate the next frame to fill for transmit.
126 * tegra_ivc_write_advance - Advance the write queue.
140 * tegra_ivc_channel_notified - handle internal messages
146 * @return 0 if the channel is ready for communication, or -EAGAIN if a
152 * tegra_ivc_channel_reset - initiates a reset of the shared memory state
164 * tegra_ivc_init - Initialize a channel's software state.
167 * @rx_base Address of the the RX shared memory buffer.
168 * @tx_base Address of the the TX shared memory buffer.
169 * @nframes Number of frames in each shared memory buffer.