drivers/bus/fsl-mc/fsl-mc-private.h
Source file repositories/reference/linux-study-clean/drivers/bus/fsl-mc/fsl-mc-private.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/bus/fsl-mc/fsl-mc-private.h- Extension
.h- Size
- 16766 bytes
- Lines
- 688
- Domain
- Driver Families
- Bucket
- drivers/bus
- 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
linux/fsl/mc.hlinux/mutex.hlinux/ioctl.hlinux/miscdevice.h
Detected Declarations
struct dpmng_rsp_get_versionstruct dpmcp_cmd_openstruct dprc_cmd_openstruct dprc_cmd_reset_containerstruct dprc_cmd_set_irqstruct dprc_cmd_set_irq_enablestruct dprc_cmd_set_irq_maskstruct dprc_cmd_get_irq_statusstruct dprc_rsp_get_irq_statusstruct dprc_cmd_clear_irq_statusstruct dprc_rsp_get_attributesstruct dprc_rsp_get_obj_countstruct dprc_cmd_get_objstruct dprc_rsp_get_objstruct dprc_cmd_get_obj_regionstruct dprc_rsp_get_obj_regionstruct dprc_cmd_set_obj_irqstruct dprc_cmd_get_connectionstruct dprc_rsp_get_connectionstruct dprc_irq_cfgstruct dprc_attributesstruct dprc_region_descstruct dprc_endpointstruct dpbp_cmd_openstruct dpbp_rsp_get_attributesstruct dpcon_cmd_openstruct dpcon_rsp_get_attrstruct dpcon_cmd_set_notificationstruct fsl_mc_obj_cmd_openstruct fsl_mc_resource_poolstruct fsl_mc_uapistruct fsl_mc_busenum dprc_region_typefunction fsl_mc_uapi_create_device_filefunction fsl_mc_uapi_remove_device_file
Annotated Snippet
struct dpmng_rsp_get_version {
__le32 revision;
__le32 version_major;
__le32 version_minor;
};
/*
* Data Path Management Command Portal (DPMCP) API
*/
/* Minimal supported DPMCP Version */
#define DPMCP_MIN_VER_MAJOR 3
#define DPMCP_MIN_VER_MINOR 0
/* DPMCP command versioning */
#define DPMCP_CMD_BASE_VERSION 1
#define DPMCP_CMD_ID_OFFSET 4
#define DPMCP_CMD(id) (((id) << DPMCP_CMD_ID_OFFSET) | DPMCP_CMD_BASE_VERSION)
/* DPMCP command IDs */
#define DPMCP_CMDID_CLOSE DPMCP_CMD(0x800)
#define DPMCP_CMDID_RESET DPMCP_CMD(0x005)
struct dpmcp_cmd_open {
__le32 dpmcp_id;
};
/*
* Initialization and runtime control APIs for DPMCP
*/
int dpmcp_open(struct fsl_mc_io *mc_io,
u32 cmd_flags,
int dpmcp_id,
u16 *token);
int dpmcp_close(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token);
/*
* Data Path Resource Container (DPRC) API
*/
/* Minimal supported DPRC Version */
#define DPRC_MIN_VER_MAJOR 6
#define DPRC_MIN_VER_MINOR 0
/* DPRC command versioning */
#define DPRC_CMD_BASE_VERSION 1
#define DPRC_CMD_2ND_VERSION 2
#define DPRC_CMD_3RD_VERSION 3
#define DPRC_CMD_ID_OFFSET 4
#define DPRC_CMD(id) (((id) << DPRC_CMD_ID_OFFSET) | DPRC_CMD_BASE_VERSION)
#define DPRC_CMD_V2(id) (((id) << DPRC_CMD_ID_OFFSET) | DPRC_CMD_2ND_VERSION)
#define DPRC_CMD_V3(id) (((id) << DPRC_CMD_ID_OFFSET) | DPRC_CMD_3RD_VERSION)
/* DPRC command IDs */
#define DPRC_CMDID_CLOSE DPRC_CMD(0x800)
#define DPRC_CMDID_GET_API_VERSION DPRC_CMD(0xa05)
#define DPRC_CMDID_GET_ATTR DPRC_CMD(0x004)
#define DPRC_CMDID_RESET_CONT DPRC_CMD(0x005)
#define DPRC_CMDID_RESET_CONT_V2 DPRC_CMD_V2(0x005)
#define DPRC_CMDID_SET_IRQ DPRC_CMD(0x010)
#define DPRC_CMDID_SET_IRQ_ENABLE DPRC_CMD(0x012)
#define DPRC_CMDID_SET_IRQ_MASK DPRC_CMD(0x014)
#define DPRC_CMDID_GET_IRQ_STATUS DPRC_CMD(0x016)
#define DPRC_CMDID_CLEAR_IRQ_STATUS DPRC_CMD(0x017)
#define DPRC_CMDID_GET_CONT_ID DPRC_CMD(0x830)
#define DPRC_CMDID_GET_OBJ_COUNT DPRC_CMD(0x159)
#define DPRC_CMDID_GET_OBJ DPRC_CMD(0x15A)
#define DPRC_CMDID_GET_OBJ_REG DPRC_CMD(0x15E)
#define DPRC_CMDID_GET_OBJ_REG_V2 DPRC_CMD_V2(0x15E)
#define DPRC_CMDID_GET_OBJ_REG_V3 DPRC_CMD_V3(0x15E)
#define DPRC_CMDID_SET_OBJ_IRQ DPRC_CMD(0x15F)
#define DPRC_CMDID_GET_CONNECTION DPRC_CMD(0x16C)
struct dprc_cmd_open {
__le32 container_id;
};
struct dprc_cmd_reset_container {
__le32 child_container_id;
__le32 options;
};
Annotation
- Immediate include surface: `linux/fsl/mc.h`, `linux/mutex.h`, `linux/ioctl.h`, `linux/miscdevice.h`.
- Detected declarations: `struct dpmng_rsp_get_version`, `struct dpmcp_cmd_open`, `struct dprc_cmd_open`, `struct dprc_cmd_reset_container`, `struct dprc_cmd_set_irq`, `struct dprc_cmd_set_irq_enable`, `struct dprc_cmd_set_irq_mask`, `struct dprc_cmd_get_irq_status`, `struct dprc_rsp_get_irq_status`, `struct dprc_cmd_clear_irq_status`.
- Atlas domain: Driver Families / drivers/bus.
- 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.