Function esp_idf_svc::sys::xRingbufferReceiveSplitFromISR

source ยท
pub unsafe extern "C" fn xRingbufferReceiveSplitFromISR(
    xRingbuffer: *mut c_void,
    ppvHeadItem: *mut *mut c_void,
    ppvTailItem: *mut *mut c_void,
    pxHeadItemSize: *mut usize,
    pxTailItemSize: *mut usize,
) -> i32
Expand description

@brief Retrieve a split item from an allow-split ring buffer in an ISR

Attempt to retrieve a split item from an allow-split ring buffer. If the item is not split, only a single item is retried. If the item is split, both parts will be retrieved. This function returns immediately if there are no items available for retrieval

@param[in] xRingbuffer Ring buffer to retrieve the item from @param[out] ppvHeadItem Double pointer to first part (set to NULL if no items were retrieved) @param[out] ppvTailItem Double pointer to second part (set to NULL if item is not split) @param[out] pxHeadItemSize Pointer to size of first part (unmodified if no items were retrieved) @param[out] pxTailItemSize Pointer to size of second part (unmodified if item is not split)

@note Calls to vRingbufferReturnItemFromISR() is required after this to free up the item(s) retrieved. @note This function should only be called on allow-split buffers @note It is possible to receive items with a pxItemSize of 0 on allow split buffers.

@return - pdTRUE if an item (split or unsplit) was retrieved - pdFALSE when no item was retrieved