| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #pragma once
- #include <stdint.h>
- #include "sys/queue.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * SLC2 DMA Desc struct, aka lldesc_t
- *
- * --------------------------------------------------------------
- * | own | EoF | sub_sof | 5'b0 | length [11:0] | size [11:0] |
- * --------------------------------------------------------------
- * | buf_ptr [31:0] |
- * --------------------------------------------------------------
- * | next_desc_ptr [31:0] |
- * --------------------------------------------------------------
- */
- /* this bitfield is start from the LSB!!! */
- typedef struct lldesc_s {
- volatile uint32_t size : 12,
- length: 12,
- offset: 5, /* h/w reserved 5bit, s/w use it as offset in buffer */
- sosf : 1, /* start of sub-frame */
- eof : 1, /* end of frame */
- owner : 1; /* hw or sw */
- volatile const uint8_t *buf; /* point to buffer data */
- union {
- volatile uint32_t empty;
- STAILQ_ENTRY(lldesc_s) qe; /* pointing to the next desc */
- };
- } lldesc_t;
- #ifdef __cplusplus
- }
- #endif
|