arch/parisc/include/uapi/asm/pdc.h
Source file repositories/reference/linux-study-clean/arch/parisc/include/uapi/asm/pdc.h
File Facts
- System
- Linux kernel
- Corpus path
arch/parisc/include/uapi/asm/pdc.h- Extension
.h- Size
- 25054 bytes
- Lines
- 747
- Domain
- Architecture Layer
- Bucket
- arch/parisc
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct hardware_pathstruct pdc_module_pathstruct pz_devicestruct zeropagestruct pdc_chassis_infostruct pdc_coproc_cfgstruct pdc_modelstruct pdc_cache_cfstruct pdc_tlb_cfstruct pdc_cache_infostruct pdc_iodcstruct pdc_btlb_info_rangestruct pdc_btlb_infostruct pdc_mem_retinfostruct pdc_mem_read_pdtstruct pdc_memory_table_raddrstruct pdc_memory_tablestruct pdc_system_map_mod_infostruct pdc_system_map_addr_infostruct pdc_relocate_info_blockstruct pdc_initiatorstruct pdc_memory_mapstruct pdc_todstruct pdc_hpmc_pim_11struct pdc_hpmc_pim_20struct pim_cpu_state_cfstruct pdc_toc_pim_11struct pdc_toc_pim_20struct pdc_firm_test_get_rtn_block
Annotated Snippet
struct hardware_path {
unsigned char flags; /* see bit definitions below */
signed char bc[6]; /* Bus Converter routing info to a specific */
/* I/O adaptor (< 0 means none, > 63 resvd) */
signed char mod; /* fixed field of specified module */
};
struct pdc_module_path { /* page 1-69 */
struct hardware_path path;
unsigned int layers[6]; /* device-specific info (ctlr #, unit # ...) */
} __attribute__((aligned(8)));
struct pz_device {
struct pdc_module_path dp; /* see above */
/* struct iomod *hpa; */
unsigned int hpa; /* HPA base address */
/* char *spa; */
unsigned int spa; /* SPA base address */
/* int (*iodc_io)(struct iomod*, ...); */
unsigned int iodc_io; /* device entry point */
short pad; /* reserved */
unsigned short cl_class;/* see below */
} __attribute__((aligned(8))) ;
struct zeropage {
/* [0x000] initialize vectors (VEC) */
unsigned int vec_special; /* must be zero */
/* int (*vec_pow_fail)(void);*/
unsigned int vec_pow_fail; /* power failure handler */
/* int (*vec_toc)(void); */
unsigned int vec_toc;
unsigned int vec_toclen;
/* int (*vec_rendz)(void); */
unsigned int vec_rendz;
int vec_pow_fail_flen;
int vec_pad0[3];
unsigned int vec_toc_hi;
int vec_pad1[6];
/* [0x040] reserved processor dependent */
int pad0[112]; /* in QEMU pad0[0] holds "SeaBIOS\0" */
/* [0x200] reserved */
int pad1[84];
/* [0x350] memory configuration (MC) */
int memc_cont; /* contiguous mem size (bytes) */
int memc_phsize; /* physical memory size */
int memc_adsize; /* additional mem size, bytes of SPA space used by PDC */
unsigned int mem_pdc_hi; /* used for 64-bit */
/* [0x360] various parameters for the boot-CPU */
/* unsigned int *mem_booterr[8]; */
unsigned int mem_booterr[8]; /* ptr to boot errors */
unsigned int mem_free; /* first location, where OS can be loaded */
/* struct iomod *mem_hpa; */
unsigned int mem_hpa; /* HPA of the boot-CPU */
/* int (*mem_pdc)(int, ...); */
unsigned int mem_pdc; /* PDC entry point */
unsigned int mem_10msec; /* number of clock ticks in 10msec */
/* [0x390] initial memory module (IMM) */
/* struct iomod *imm_hpa; */
unsigned int imm_hpa; /* HPA of the IMM */
int imm_soft_boot; /* 0 = was hard boot, 1 = was soft boot */
unsigned int imm_spa_size; /* SPA size of the IMM in bytes */
unsigned int imm_max_mem; /* bytes of mem in IMM */
/* [0x3A0] boot console, display device and keyboard */
struct pz_device mem_cons; /* description of console device */
struct pz_device mem_boot; /* description of boot device */
struct pz_device mem_kbd; /* description of keyboard device */
/* [0x430] reserved */
int pad430[116];
/* [0x600] processor dependent */
unsigned int pad600[1];
unsigned int proc_sti; /* pointer to STI ROM */
unsigned int pad608[126];
};
struct pdc_chassis_info { /* for PDC_CHASSIS_INFO */
unsigned long actcnt; /* actual number of bytes returned */
unsigned long maxcnt; /* maximum number of bytes that could be returned */
};
struct pdc_coproc_cfg { /* for PDC_COPROC_CFG */
unsigned long ccr_functional;
unsigned long ccr_present;
Annotation
- Detected declarations: `struct hardware_path`, `struct pdc_module_path`, `struct pz_device`, `struct zeropage`, `struct pdc_chassis_info`, `struct pdc_coproc_cfg`, `struct pdc_model`, `struct pdc_cache_cf`, `struct pdc_tlb_cf`, `struct pdc_cache_info`.
- Atlas domain: Architecture Layer / arch/parisc.
- 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.