Function esp_idf_svc::hal::sys::xRingbufferSend
source ยท pub unsafe extern "C" fn xRingbufferSend(
xRingbuffer: *mut c_void,
pvItem: *const c_void,
xItemSize: usize,
xTicksToWait: u32,
) -> i32
Expand description
@brief Insert an item into the ring buffer
Attempt to insert an item into the ring buffer. This function will block until enough free space is available or until it times out.
@param[in] xRingbuffer Ring buffer to insert the item into @param[in] pvItem Pointer to data to insert. NULL is allowed if xItemSize is 0. @param[in] xItemSize Size of data to insert. @param[in] xTicksToWait Ticks to wait for room in the ring buffer.
@note For no-split/allow-split ring buffers, 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 For no-split/allow-split buffers, an xItemSize of 0 will result in an item with no data being set (i.e., item only contains the header). For byte buffers, an xItemSize of 0 will simply return pdTRUE without copying any data.
@return - pdTRUE if succeeded - pdFALSE on time-out or when the data is larger than the maximum permissible size of the buffer