include/uapi/linux/fpga-dfl.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/fpga-dfl.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/fpga-dfl.h- Extension
.h- Size
- 8743 bytes
- Lines
- 280
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/ioctl.h
Detected Declarations
struct dfl_fpga_port_infostruct dfl_fpga_port_region_infostruct dfl_fpga_port_dma_mapstruct dfl_fpga_port_dma_unmapstruct dfl_fpga_irq_setstruct dfl_fpga_fme_port_pr
Annotated Snippet
struct dfl_fpga_port_info {
/* Input */
__u32 argsz; /* Structure length */
/* Output */
__u32 flags; /* Zero for now */
__u32 num_regions; /* The number of supported regions */
__u32 num_umsgs; /* The number of allocated umsgs */
};
#define DFL_FPGA_PORT_GET_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1)
/**
* FPGA_PORT_GET_REGION_INFO - _IOWR(FPGA_MAGIC, PORT_BASE + 2,
* struct dfl_fpga_port_region_info)
*
* Retrieve information about a device memory region.
* Caller provides struct dfl_fpga_port_region_info with index value set.
* Driver returns the region info in other fields.
* Return: 0 on success, -errno on failure.
*/
struct dfl_fpga_port_region_info {
/* input */
__u32 argsz; /* Structure length */
/* Output */
__u32 flags; /* Access permission */
#define DFL_PORT_REGION_READ (1 << 0) /* Region is readable */
#define DFL_PORT_REGION_WRITE (1 << 1) /* Region is writable */
#define DFL_PORT_REGION_MMAP (1 << 2) /* Can be mmaped to userspace */
/* Input */
__u32 index; /* Region index */
#define DFL_PORT_REGION_INDEX_AFU 0 /* AFU */
#define DFL_PORT_REGION_INDEX_STP 1 /* Signal Tap */
__u32 padding;
/* Output */
__u64 size; /* Region size (bytes) */
__u64 offset; /* Region offset from start of device fd */
};
#define DFL_FPGA_PORT_GET_REGION_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 2)
/**
* DFL_FPGA_PORT_DMA_MAP - _IOWR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3,
* struct dfl_fpga_port_dma_map)
*
* Map the dma memory per user_addr and length which are provided by caller.
* Driver fills the iova in provided struct afu_port_dma_map.
* This interface only accepts page-size aligned user memory for dma mapping.
* Return: 0 on success, -errno on failure.
*/
struct dfl_fpga_port_dma_map {
/* Input */
__u32 argsz; /* Structure length */
__u32 flags; /* Zero for now */
__u64 user_addr; /* Process virtual address */
__u64 length; /* Length of mapping (bytes)*/
/* Output */
__u64 iova; /* IO virtual address */
};
#define DFL_FPGA_PORT_DMA_MAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3)
/**
* DFL_FPGA_PORT_DMA_UNMAP - _IOW(FPGA_MAGIC, PORT_BASE + 4,
* struct dfl_fpga_port_dma_unmap)
*
* Unmap the dma memory per iova provided by caller.
* Return: 0 on success, -errno on failure.
*/
struct dfl_fpga_port_dma_unmap {
/* Input */
__u32 argsz; /* Structure length */
__u32 flags; /* Zero for now */
__u64 iova; /* IO virtual address */
};
#define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4)
/**
* struct dfl_fpga_irq_set - the argument for DFL_FPGA_XXX_SET_IRQ ioctl.
*
* @start: Index of the first irq.
* @count: The number of eventfd handler.
* @evtfds: Eventfd handlers.
*/
struct dfl_fpga_irq_set {
__u32 start;
__u32 count;
__s32 evtfds[];
};
Annotation
- Immediate include surface: `linux/types.h`, `linux/ioctl.h`.
- Detected declarations: `struct dfl_fpga_port_info`, `struct dfl_fpga_port_region_info`, `struct dfl_fpga_port_dma_map`, `struct dfl_fpga_port_dma_unmap`, `struct dfl_fpga_irq_set`, `struct dfl_fpga_fme_port_pr`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.