On Thu, 20 Feb 2025 23:03:49 +0100
Serhii Iliushyk <[email protected]> wrote:
> +/*
> + * Send Tx data using the SPIM module and receive any data using the SPIS
> module.
> + * The data are sent and received being wrapped into a SPI v3 container.
> + */
> +int nthw_spi_v3_transfer(nthw_spi_v3_t *p, uint16_t opcode, struct tx_rx_buf
> *tx_buf,
> + struct tx_rx_buf *rx_buf)
> +{
> + const uint16_t max_payload_rx_size = rx_buf->size;
> + int result = 0;
> +
> +#pragma pack(push, 1)
> + union {
> + uint32_t raw;
> +
> + struct {
> + uint16_t opcode;
> + uint16_t size;
> + };
> + } spi_tx_hdr;
> +
> + union {
> + uint32_t raw;
> +
> + struct {
> + uint16_t error_code;
> + uint16_t size;
> + };
> + } spi_rx_hdr;
> +
> +#pragma pack(pop)
Use of pragma's is strongly discouraged. For packed data use
__rte_packed_begin, __rte_packed_end.
Not sure why packing is needed here at all. The union will result in the same