arch/mips/include/asm/sgiarcs.h
Source file repositories/reference/linux-study-clean/arch/mips/include/asm/sgiarcs.h
File Facts
- System
- Linux kernel
- Corpus path
arch/mips/include/asm/sgiarcs.h- Extension
.h- Size
- 14022 bytes
- Lines
- 506
- Domain
- Architecture Layer
- Bucket
- arch/mips
- 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/kernel.hasm/types.hasm/fw/arc/types.h
Detected Declarations
struct linux_componentstruct linux_sysidstruct linux_mdescstruct linux_tinfostruct linux_vdirentstruct linux_bigintstruct linux_finfostruct linux_romvecstruct paramstruct linux_cdatastruct sgi_partitionstruct sgi_bootblockstruct sgi_bparm_blockstruct sgi_bsectorstruct linux_smonblockenum linux_devclassenum linux_devtypesenum linux_identifierenum arcs_memtypesenum arc_memtypesenum linux_omodeenum linux_seekmodeenum linux_mountops
Annotated Snippet
struct linux_component {
enum linux_devclass class; /* node class */
enum linux_devtypes type; /* node type */
enum linux_identifier iflags; /* node flags */
USHORT vers; /* node version */
USHORT rev; /* node revision */
ULONG key; /* completely magic */
ULONG amask; /* XXX affinity mask??? */
ULONG cdsize; /* size of configuration data */
ULONG ilen; /* length of string identifier */
_PULONG iname; /* string identifier */
};
typedef struct linux_component pcomponent;
struct linux_sysid {
char vend[8], prod[8];
};
/* ARCS prom memory descriptors. */
enum arcs_memtypes {
arcs_eblock, /* exception block */
arcs_rvpage, /* ARCS romvec page */
arcs_fcontig, /* Contiguous and free */
arcs_free, /* Generic free memory */
arcs_bmem, /* Borken memory, don't use */
arcs_prog, /* A loaded program resides here */
arcs_atmp, /* ARCS temporary storage area, wish Sparc OpenBoot told this */
arcs_aperm, /* ARCS permanent storage... */
};
/* ARC has slightly different types than ARCS */
enum arc_memtypes {
arc_eblock, /* exception block */
arc_rvpage, /* romvec page */
arc_free, /* Generic free memory */
arc_bmem, /* Borken memory, don't use */
arc_prog, /* A loaded program resides here */
arc_atmp, /* temporary storage area */
arc_aperm, /* permanent storage */
arc_fcontig, /* Contiguous and free */
};
union linux_memtypes {
enum arcs_memtypes arcs;
enum arc_memtypes arc;
};
struct linux_mdesc {
union linux_memtypes type;
ULONG base;
ULONG pages;
};
/* Time of day descriptor. */
struct linux_tinfo {
unsigned short yr;
unsigned short mnth;
unsigned short day;
unsigned short hr;
unsigned short min;
unsigned short sec;
unsigned short msec;
};
/* ARCS virtual dirents. */
struct linux_vdirent {
ULONG namelen;
unsigned char attr;
char fname[32]; /* XXX empirical, should be a define */
};
/* Other stuff for files. */
enum linux_omode {
rdonly, wronly, rdwr, wronly_creat, rdwr_creat,
wronly_ssede, rdwr_ssede, dirent, dirent_creat
};
enum linux_seekmode {
absolute, relative
};
enum linux_mountops {
media_load, media_unload
};
/* This prom has a bolixed design. */
struct linux_bigint {
#ifdef __MIPSEL__
u32 lo;
s32 hi;
Annotation
- Immediate include surface: `linux/kernel.h`, `asm/types.h`, `asm/fw/arc/types.h`.
- Detected declarations: `struct linux_component`, `struct linux_sysid`, `struct linux_mdesc`, `struct linux_tinfo`, `struct linux_vdirent`, `struct linux_bigint`, `struct linux_finfo`, `struct linux_romvec`, `struct param`, `struct linux_cdata`.
- Atlas domain: Architecture Layer / arch/mips.
- 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.