mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-11-06 12:32:46 +00:00
nimble/ll: Add static checks for mbuf data alignment
Since copying of received PDUs into mbufs assumes data in mbuf is word aligned, let's add static checks to make sure this is indeed true to avoid surprises in the future.
This commit is contained in:
@@ -320,6 +320,18 @@ ble_ll_rxpdu_alloc(uint16_t len)
|
||||
uint16_t databuf_len;
|
||||
int rem_len;
|
||||
|
||||
/*
|
||||
* Make sure that data in mbuf are word-aligned with and without packet
|
||||
* header. This is essential for proper and quick copying of received PDUs
|
||||
* into mbufs.
|
||||
*/
|
||||
_Static_assert((offsetof(struct os_mbuf, om_data) & 3) == 0,
|
||||
"Unaligned om_data");
|
||||
_Static_assert(((offsetof(struct os_mbuf, om_data) +
|
||||
sizeof(struct os_mbuf_pkthdr) +
|
||||
sizeof(struct ble_mbuf_hdr)) & 3) == 0,
|
||||
"Unaligned data trailing packet header");
|
||||
|
||||
om_ret = os_msys_get_pkthdr(len, sizeof(struct ble_mbuf_hdr));
|
||||
if (!om_ret) {
|
||||
goto rxpdu_alloc_fail;
|
||||
|
||||
Reference in New Issue
Block a user