drivers/staging/media/atomisp/pci/runtime/queue/interface/ia_css_queue.h
Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/runtime/queue/interface/ia_css_queue.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/atomisp/pci/runtime/queue/interface/ia_css_queue.h- Extension
.h- Size
- 4799 bytes
- Lines
- 168
- Domain
- Driver Families
- Bucket
- drivers/staging
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
platform_support.htype_support.hia_css_queue_comm.h../src/queue_access.h
Detected Declarations
struct ia_css_queue_local
Annotated Snippet
struct ia_css_queue_local {
ia_css_circbuf_desc_t *cb_desc; /*Circbuf desc for local queues*/
ia_css_circbuf_elem_t *cb_elems; /*Circbuf elements*/
};
typedef struct ia_css_queue_local ia_css_queue_local_t;
/* Handle for queue object*/
typedef struct ia_css_queue ia_css_queue_t;
/*****************************************************************************
* Queue Public APIs
*****************************************************************************/
/* @brief Initialize a local queue instance.
*
* @param[out] qhandle. Handle to queue instance for use with API
* @param[in] desc. Descriptor with queue properties filled-in
* @return 0 - Successful init of local queue instance.
* @return -EINVAL - Invalid argument.
*
*/
int ia_css_queue_local_init(
ia_css_queue_t *qhandle,
ia_css_queue_local_t *desc);
/* @brief Initialize a remote queue instance
*
* @param[out] qhandle. Handle to queue instance for use with API
* @param[in] desc. Descriptor with queue properties filled-in
* @return 0 - Successful init of remote queue instance.
* @return -EINVAL - Invalid argument.
*/
int ia_css_queue_remote_init(
ia_css_queue_t *qhandle,
ia_css_queue_remote_t *desc);
/* @brief Uninitialize a queue instance
*
* @param[in] qhandle. Handle to queue instance
* @return 0 - Successful uninit.
*
*/
int ia_css_queue_uninit(
ia_css_queue_t *qhandle);
/* @brief Enqueue an item in the queue instance
*
* @param[in] qhandle. Handle to queue instance
* @param[in] item. Object to be enqueued.
* @return 0 - Successful enqueue.
* @return -EINVAL - Invalid argument.
* @return -ENOBUFS - Queue is full.
*
*/
int ia_css_queue_enqueue(
ia_css_queue_t *qhandle,
uint32_t item);
/* @brief Dequeue an item from the queue instance
*
* @param[in] qhandle. Handle to queue instance
* @param[out] item. Object to be dequeued into this item.
* @return 0 - Successful dequeue.
* @return -EINVAL - Invalid argument.
* @return -ENODATA - Queue is empty.
*
*/
int ia_css_queue_dequeue(
ia_css_queue_t *qhandle,
uint32_t *item);
/* @brief Check if the queue is empty
*
* @param[in] qhandle. Handle to queue instance
* @param[in] is_empty True if empty, False if not.
* @return 0 - Successful access state.
* @return -EINVAL - Invalid argument.
* @return -ENOSYS - Function not implemented.
*
*/
int ia_css_queue_is_empty(
ia_css_queue_t *qhandle,
bool *is_empty);
/* @brief Check if the queue is full
*
* @param[in] qhandle. Handle to queue instance
* @param[in] is_full True if Full, False if not.
* @return 0 - Successfully access state.
Annotation
- Immediate include surface: `platform_support.h`, `type_support.h`, `ia_css_queue_comm.h`, `../src/queue_access.h`.
- Detected declarations: `struct ia_css_queue_local`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.