drivers/staging/media/atomisp/pci/runtime/bufq/interface/ia_css_bufq.h
Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/runtime/bufq/interface/ia_css_bufq.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/atomisp/pci/runtime/bufq/interface/ia_css_bufq.h- Extension
.h- Size
- 3896 bytes
- Lines
- 170
- 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.
Dependency Surface
type_support.hia_css_bufq_comm.hia_css_buffer.hia_css_err.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef _IA_CSS_BUFQ_H
#define _IA_CSS_BUFQ_H
#include <type_support.h>
#include "ia_css_bufq_comm.h"
#include "ia_css_buffer.h"
#include "ia_css_err.h"
#define BUFQ_EVENT_SIZE 4
/**
* @brief Query the internal frame ID.
*
* @param[in] key The query key.
* @param[out] val The query value.
*
* @return
* true, if the query succeeds;
* false, if the query fails.
*/
bool ia_css_query_internal_queue_id(
enum ia_css_buffer_type buf_type,
unsigned int thread_id,
enum sh_css_queue_id *val
);
/**
* @brief Map buffer type to a internal queue id.
*
* @param[in] thread id Thread in which the buffer type has to be mapped or unmapped
* @param[in] buf_type buffer type.
* @param[in] map boolean flag to specify map or unmap
* @return none
*/
void ia_css_queue_map(
unsigned int thread_id,
enum ia_css_buffer_type buf_type,
bool map
);
/**
* @brief Initialize buffer type to a queue id mapping
* @return none
*/
void ia_css_queue_map_init(void);
/**
* @brief initializes bufq module
* It create instances of
* -host to SP buffer queue which is a list with predefined size,
* MxN queues where M is the number threads and N is the number queues per thread
*-SP to host buffer queue , is a list with N queues
*-host to SP event communication queue
* -SP to host event communication queue
* -queue for tagger commands
* @return none
*/
void ia_css_bufq_init(void);
/**
* @brief Enqueues an item into host to SP buffer queue
*
* @param thread_index[in] Thread in which the item to be enqueued
*
* @param queue_id[in] Index of the queue in the specified thread
* @param item[in] Object to enqueue.
* @return 0 or error code upon error.
*
*/
int ia_css_bufq_enqueue_buffer(
int thread_index,
int queue_id,
uint32_t item);
/**
* @brief Dequeues an item from SP to host buffer queue.
*
* @param queue_id[in] Specifies the index of the queue in the list where
* the item has to be read.
* @paramitem [out] Object to be dequeued into this item.
* @return 0 or error code upon error.
*
*/
int ia_css_bufq_dequeue_buffer(
int queue_id,
uint32_t *item);
/**
* @brief Enqueue an event item into host to SP communication event queue.
*
* @param[in] evt_id The event ID.
Annotation
- Immediate include surface: `type_support.h`, `ia_css_bufq_comm.h`, `ia_css_buffer.h`, `ia_css_err.h`.
- 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.