include/linux/rio_regs.h
Source file repositories/reference/linux-study-clean/include/linux/rio_regs.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/rio_regs.h- Extension
.h- Size
- 19524 bytes
- Lines
- 392
- 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.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef LINUX_RIO_REGS_H
#define LINUX_RIO_REGS_H
/*
* In RapidIO, each device has a 16MB configuration space that is
* accessed via maintenance transactions. Portions of configuration
* space are standardized and/or reserved.
*/
#define RIO_MAINT_SPACE_SZ 0x1000000 /* 16MB of RapidIO mainenance space */
#define RIO_DEV_ID_CAR 0x00 /* [I] Device Identity CAR */
#define RIO_DEV_INFO_CAR 0x04 /* [I] Device Information CAR */
#define RIO_ASM_ID_CAR 0x08 /* [I] Assembly Identity CAR */
#define RIO_ASM_ID_MASK 0xffff0000 /* [I] Asm ID Mask */
#define RIO_ASM_VEN_ID_MASK 0x0000ffff /* [I] Asm Vend Mask */
#define RIO_ASM_INFO_CAR 0x0c /* [I] Assembly Information CAR */
#define RIO_ASM_REV_MASK 0xffff0000 /* [I] Asm Rev Mask */
#define RIO_EXT_FTR_PTR_MASK 0x0000ffff /* [I] EF_PTR Mask */
#define RIO_PEF_CAR 0x10 /* [I] Processing Element Features CAR */
#define RIO_PEF_BRIDGE 0x80000000 /* [I] Bridge */
#define RIO_PEF_MEMORY 0x40000000 /* [I] MMIO */
#define RIO_PEF_PROCESSOR 0x20000000 /* [I] Processor */
#define RIO_PEF_SWITCH 0x10000000 /* [I] Switch */
#define RIO_PEF_MULTIPORT 0x08000000 /* [VI, 2.1] Multiport */
#define RIO_PEF_INB_MBOX 0x00f00000 /* [II, <= 1.2] Mailboxes */
#define RIO_PEF_INB_MBOX0 0x00800000 /* [II, <= 1.2] Mailbox 0 */
#define RIO_PEF_INB_MBOX1 0x00400000 /* [II, <= 1.2] Mailbox 1 */
#define RIO_PEF_INB_MBOX2 0x00200000 /* [II, <= 1.2] Mailbox 2 */
#define RIO_PEF_INB_MBOX3 0x00100000 /* [II, <= 1.2] Mailbox 3 */
#define RIO_PEF_INB_DOORBELL 0x00080000 /* [II, <= 1.2] Doorbells */
#define RIO_PEF_DEV32 0x00001000 /* [III] PE supports Common TRansport Dev32 */
#define RIO_PEF_EXT_RT 0x00000200 /* [III, 1.3] Extended route table support */
#define RIO_PEF_STD_RT 0x00000100 /* [III, 1.3] Standard route table support */
#define RIO_PEF_CTLS 0x00000010 /* [III] Common Transport Large System (< rev.3) */
#define RIO_PEF_DEV16 0x00000010 /* [III] PE Supports Common Transport Dev16 (rev.3) */
#define RIO_PEF_EXT_FEATURES 0x00000008 /* [I] EFT_PTR valid */
#define RIO_PEF_ADDR_66 0x00000004 /* [I] 66 bits */
#define RIO_PEF_ADDR_50 0x00000002 /* [I] 50 bits */
#define RIO_PEF_ADDR_34 0x00000001 /* [I] 34 bits */
#define RIO_SWP_INFO_CAR 0x14 /* [I] Switch Port Information CAR */
#define RIO_SWP_INFO_PORT_TOTAL_MASK 0x0000ff00 /* [I] Total number of ports */
#define RIO_SWP_INFO_PORT_NUM_MASK 0x000000ff /* [I] Maintenance transaction port number */
#define RIO_GET_TOTAL_PORTS(x) ((x & RIO_SWP_INFO_PORT_TOTAL_MASK) >> 8)
#define RIO_GET_PORT_NUM(x) (x & RIO_SWP_INFO_PORT_NUM_MASK)
#define RIO_SRC_OPS_CAR 0x18 /* [I] Source Operations CAR */
#define RIO_SRC_OPS_READ 0x00008000 /* [I] Read op */
#define RIO_SRC_OPS_WRITE 0x00004000 /* [I] Write op */
#define RIO_SRC_OPS_STREAM_WRITE 0x00002000 /* [I] Str-write op */
#define RIO_SRC_OPS_WRITE_RESPONSE 0x00001000 /* [I] Write/resp op */
#define RIO_SRC_OPS_DATA_MSG 0x00000800 /* [II] Data msg op */
#define RIO_SRC_OPS_DOORBELL 0x00000400 /* [II] Doorbell op */
#define RIO_SRC_OPS_ATOMIC_TST_SWP 0x00000100 /* [I] Atomic TAS op */
#define RIO_SRC_OPS_ATOMIC_INC 0x00000080 /* [I] Atomic inc op */
#define RIO_SRC_OPS_ATOMIC_DEC 0x00000040 /* [I] Atomic dec op */
#define RIO_SRC_OPS_ATOMIC_SET 0x00000020 /* [I] Atomic set op */
#define RIO_SRC_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */
#define RIO_SRC_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */
#define RIO_DST_OPS_CAR 0x1c /* Destination Operations CAR */
#define RIO_DST_OPS_READ 0x00008000 /* [I] Read op */
#define RIO_DST_OPS_WRITE 0x00004000 /* [I] Write op */
#define RIO_DST_OPS_STREAM_WRITE 0x00002000 /* [I] Str-write op */
#define RIO_DST_OPS_WRITE_RESPONSE 0x00001000 /* [I] Write/resp op */
#define RIO_DST_OPS_DATA_MSG 0x00000800 /* [II] Data msg op */
#define RIO_DST_OPS_DOORBELL 0x00000400 /* [II] Doorbell op */
#define RIO_DST_OPS_ATOMIC_TST_SWP 0x00000100 /* [I] Atomic TAS op */
#define RIO_DST_OPS_ATOMIC_INC 0x00000080 /* [I] Atomic inc op */
#define RIO_DST_OPS_ATOMIC_DEC 0x00000040 /* [I] Atomic dec op */
#define RIO_DST_OPS_ATOMIC_SET 0x00000020 /* [I] Atomic set op */
#define RIO_DST_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */
#define RIO_DST_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */
#define RIO_OPS_READ 0x00008000 /* [I] Read op */
#define RIO_OPS_WRITE 0x00004000 /* [I] Write op */
#define RIO_OPS_STREAM_WRITE 0x00002000 /* [I] Str-write op */
#define RIO_OPS_WRITE_RESPONSE 0x00001000 /* [I] Write/resp op */
#define RIO_OPS_DATA_MSG 0x00000800 /* [II] Data msg op */
#define RIO_OPS_DOORBELL 0x00000400 /* [II] Doorbell op */
#define RIO_OPS_ATOMIC_TST_SWP 0x00000100 /* [I] Atomic TAS op */
#define RIO_OPS_ATOMIC_INC 0x00000080 /* [I] Atomic inc op */
#define RIO_OPS_ATOMIC_DEC 0x00000040 /* [I] Atomic dec op */
#define RIO_OPS_ATOMIC_SET 0x00000020 /* [I] Atomic set op */
#define RIO_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */
#define RIO_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */
/* 0x20-0x30 *//* Reserved */
Annotation
- 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.