Function esp_idf_svc::sys::xRingbufferSendAcquire

source ยท
pub unsafe extern "C" fn xRingbufferSendAcquire(
    xRingbuffer: *mut c_void,
    ppvItem: *mut *mut c_void,
    xItemSize: usize,
    xTicksToWait: u32,
) -> i32
Expand description

@brief Acquire memory from the ring buffer to be written to by an external source and to be sent later.

Attempt to allocate buffer for an item to be sent into the ring buffer. This function will block until enough free space is available or until it times out.

The item, as well as the following items SendAcquire or Send after it, will not be able to be read from the ring buffer until this item is actually sent into the ring buffer.

@param[in] xRingbuffer Ring buffer to allocate the memory @param[out] ppvItem Double pointer to memory acquired (set to NULL if no memory were retrieved) @param[in] xItemSize Size of item to acquire. @param[in] xTicksToWait Ticks to wait for room in the ring buffer.

@note Only applicable for no-split ring buffers now, the actual size of memory that the item will occupy will be rounded up to the nearest 32-bit aligned size. This is done to ensure all items are always stored in 32-bit aligned fashion. @note An xItemSize of 0 will result in a buffer being acquired, but the buffer will have a size of 0.

@return - pdTRUE if succeeded - pdFALSE on time-out or when the data is larger than the maximum permissible size of the buffer