arch/powerpc/include/asm/rtas-types.h
Source file repositories/reference/linux-study-clean/arch/powerpc/include/asm/rtas-types.h
File Facts
- System
- Linux kernel
- Corpus path
arch/powerpc/include/asm/rtas-types.h- Extension
.h- Size
- 2930 bytes
- Lines
- 116
- Domain
- Architecture Layer
- Bucket
- arch/powerpc
- 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
linux/compiler_attributes.h
Detected Declarations
struct rtas_argsstruct rtas_tstruct rtas_error_logstruct rtas_ext_event_log_v6struct pseries_errorlogstruct pseries_hp_errorlog
Annotated Snippet
struct rtas_args {
__be32 token;
__be32 nargs;
__be32 nret;
rtas_arg_t args[16];
rtas_arg_t *rets; /* Pointer to return values in args[]. */
} __aligned(8);
struct rtas_t {
unsigned long entry; /* physical address pointer */
unsigned long base; /* physical address pointer */
unsigned long size;
struct device_node *dev; /* virtual address pointer */
};
struct rtas_error_log {
/* Byte 0 */
u8 byte0; /* Architectural version */
/* Byte 1 */
u8 byte1;
/* XXXXXXXX
* XXX 3: Severity level of error
* XX 2: Degree of recovery
* X 1: Extended log present?
* XX 2: Reserved
*/
/* Byte 2 */
u8 byte2;
/* XXXXXXXX
* XXXX 4: Initiator of event
* XXXX 4: Target of failed operation
*/
u8 byte3; /* General event or error*/
__be32 extended_log_length; /* length in bytes */
/* Start of extended log, variable length */
unsigned char buffer[] __counted_by_be(extended_log_length);
};
/* RTAS general extended event log, Version 6. The extended log starts
* from "buffer" field of struct rtas_error_log defined above.
*/
struct rtas_ext_event_log_v6 {
/* Byte 0 */
u8 byte0;
/* XXXXXXXX
* X 1: Log valid
* X 1: Unrecoverable error
* X 1: Recoverable (correctable or successfully retried)
* X 1: Bypassed unrecoverable error (degraded operation)
* X 1: Predictive error
* X 1: "New" log (always 1 for data returned from RTAS)
* X 1: Big Endian
* X 1: Reserved
*/
/* Byte 1 */
u8 byte1; /* reserved */
/* Byte 2 */
u8 byte2;
/* XXXXXXXX
* X 1: Set to 1 (indicating log is in PowerPC format)
* XXX 3: Reserved
* XXXX 4: Log format used for bytes 12-2047
*/
/* Byte 3 */
u8 byte3; /* reserved */
/* Byte 4-11 */
u8 reserved[8]; /* reserved */
/* Byte 12-15 */
__be32 company_id; /* Company ID of the company */
/* that defines the format for */
/* the vendor specific log type */
/* Byte 16-end of log */
u8 vendor_log[1]; /* Start of vendor specific log */
/* Variable length. */
};
/* Vendor specific Platform Event Log Format, Version 6, section header */
struct pseries_errorlog {
__be16 id; /* 0x00 2-byte ASCII section ID */
__be16 length; /* 0x02 Section length in bytes */
u8 version; /* 0x04 Section version */
u8 subtype; /* 0x05 Section subtype */
__be16 creator_component; /* 0x06 Creator component ID */
u8 data[]; /* 0x08 Start of section data */
Annotation
- Immediate include surface: `linux/compiler_attributes.h`.
- Detected declarations: `struct rtas_args`, `struct rtas_t`, `struct rtas_error_log`, `struct rtas_ext_event_log_v6`, `struct pseries_errorlog`, `struct pseries_hp_errorlog`.
- Atlas domain: Architecture Layer / arch/powerpc.
- 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.