Lines Matching +full:instance +full:- +full:id

4  * @brief Generic low-level inter-processor mailbox communication API.
10 * SPDX-License-Identifier: Apache-2.0
37 * interrupt-safe APIS. Registration of callbacks is done via
40 * @param ipmdev Driver instance
43 * @param id Message type identifier.
45 * must be inferred using the message id/upper level protocol.
48 uint32_t id, volatile void *data);
56 typedef int (*ipm_send_t)(const struct device *ipmdev, int wait, uint32_t id,
68 * @brief Callback API to get the ID's maximum value
117 * event/semaphore, a high-level driver can implement that.
120 * of id. Use the @a ipm_max_data_size_get and @a ipm_max_id_val_get routines
125 * to the receiving side. The upper-level protocol dictates the amount of
128 * @param ipmdev Driver instance
129 * @param wait If nonzero, busy-wait for remote to consume the message. The
133 * event/semaphore, you can implement that in a high-level driver
134 * @param id Message identifier. Values are constrained by
136 * subset of bits in a 32-bit register to store the ID.
140 * @retval -EBUSY If the remote hasn't yet read the last data sent.
141 * @retval -EMSGSIZE If the supplied data size is unsupported by the driver.
142 * @retval -EINVAL If there was a bad parameter, such as: too-large id value.
146 __syscall int ipm_send(const struct device *ipmdev, int wait, uint32_t id,
150 uint32_t id, in z_impl_ipm_send() argument
154 (const struct ipm_driver_api *)ipmdev->api; in z_impl_ipm_send()
156 return api->send(ipmdev, wait, id, data, size); in z_impl_ipm_send()
162 * @param ipmdev Driver instance pointer.
164 * @param user_data Application-specific data pointer which will be passed
171 (const struct ipm_driver_api *)ipmdev->api; in ipm_register_callback()
173 api->register_callback(ipmdev, cb, user_data); in ipm_register_callback()
182 * @param ipmdev Driver instance pointer.
191 (const struct ipm_driver_api *)ipmdev->api; in z_impl_ipm_max_data_size_get()
193 return api->max_data_size_get(ipmdev); in z_impl_ipm_max_data_size_get()
198 * @brief Return the maximum id value possible in an outbound message.
200 * Many IPM implementations store the message's ID in a register with
203 * @param ipmdev Driver instance pointer.
205 * @return Maximum possible value of a message ID.
212 (const struct ipm_driver_api *)ipmdev->api; in z_impl_ipm_max_id_val_get()
214 return api->max_id_val_get(ipmdev); in z_impl_ipm_max_id_val_get()
220 * @param ipmdev Driver instance pointer.
224 * @retval -EINVAL If it isn't an inbound channel.
232 (const struct ipm_driver_api *)ipmdev->api; in z_impl_ipm_set_enabled()
234 return api->set_enabled(ipmdev, enable); in z_impl_ipm_set_enabled()
249 * @param ipmdev Driver instance pointer.
257 (const struct ipm_driver_api *)ipmdev->api; in z_impl_ipm_complete()
259 if (api->complete != NULL) { in z_impl_ipm_complete()
260 api->complete(ipmdev); in z_impl_ipm_complete()