arch/m68k/include/asm/openprom.h
Source file repositories/reference/linux-study-clean/arch/m68k/include/asm/openprom.h
File Facts
- System
- Linux kernel
- Corpus path
arch/m68k/include/asm/openprom.h- Extension
.h- Size
- 8175 bytes
- Lines
- 314
- Domain
- Architecture Layer
- Bucket
- arch/m68k
- 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 linux_dev_v0_funcsstruct linux_dev_v2_funcsstruct linux_mlist_v0struct linux_mem_v0struct linux_arguments_v0struct linux_bootargs_v2struct linux_romvecstruct linux_romvecstruct linux_nodeopsstruct linux_prom_registersstruct linux_prom_irqsstruct linux_prom_ranges
Annotated Snippet
struct linux_dev_v0_funcs {
int (*v0_devopen)(char *device_str);
int (*v0_devclose)(int dev_desc);
int (*v0_rdblkdev)(int dev_desc, int num_blks, int blk_st, char *buf);
int (*v0_wrblkdev)(int dev_desc, int num_blks, int blk_st, char *buf);
int (*v0_wrnetdev)(int dev_desc, int num_bytes, char *buf);
int (*v0_rdnetdev)(int dev_desc, int num_bytes, char *buf);
int (*v0_rdchardev)(int dev_desc, int num_bytes, int dummy, char *buf);
int (*v0_wrchardev)(int dev_desc, int num_bytes, int dummy, char *buf);
int (*v0_seekdev)(int dev_desc, long logical_offst, int from);
};
/* V2 and later prom device operations. */
struct linux_dev_v2_funcs {
int (*v2_inst2pkg)(int d); /* Convert ihandle to phandle */
char * (*v2_dumb_mem_alloc)(char *va, unsigned sz);
void (*v2_dumb_mem_free)(char *va, unsigned sz);
/* To map devices into virtual I/O space. */
char * (*v2_dumb_mmap)(char *virta, int which_io, unsigned paddr, unsigned sz);
void (*v2_dumb_munmap)(char *virta, unsigned size);
int (*v2_dev_open)(char *devpath);
void (*v2_dev_close)(int d);
int (*v2_dev_read)(int d, char *buf, int nbytes);
int (*v2_dev_write)(int d, char *buf, int nbytes);
int (*v2_dev_seek)(int d, int hi, int lo);
/* Never issued (multistage load support) */
void (*v2_wheee2)(void);
void (*v2_wheee3)(void);
};
struct linux_mlist_v0 {
struct linux_mlist_v0 *theres_more;
char *start_adr;
unsigned num_bytes;
};
struct linux_mem_v0 {
struct linux_mlist_v0 **v0_totphys;
struct linux_mlist_v0 **v0_prommap;
struct linux_mlist_v0 **v0_available; /* What we can use */
};
/* Arguments sent to the kernel from the boot prompt. */
struct linux_arguments_v0 {
char *argv[8];
char args[100];
char boot_dev[2];
int boot_dev_ctrl;
int boot_dev_unit;
int dev_partition;
char *kernel_file_name;
void *aieee1; /* XXX */
};
/* V2 and up boot things. */
struct linux_bootargs_v2 {
char **bootpath;
char **bootargs;
int *fd_stdin;
int *fd_stdout;
};
#if defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
struct linux_romvec {
char *pv_initsp;
int (*pv_startmon)(void);
int *diagberr;
struct linux_arguments_v0 **pv_v0bootargs;
unsigned *pv_sun3mem;
unsigned char (*pv_getchar)(void);
int (*pv_putchar)(int ch);
int (*pv_nbgetchar)(void);
int (*pv_nbputchar)(int ch);
unsigned char *pv_echo;
unsigned char *pv_insource;
unsigned char *pv_outsink;
int (*pv_getkey)(void);
int (*pv_initgetkey)(void);
unsigned int *pv_translation;
unsigned char *pv_keybid;
int *pv_screen_x;
int *pv_screen_y;
struct keybuf *pv_keybuf;
Annotation
- Detected declarations: `struct linux_dev_v0_funcs`, `struct linux_dev_v2_funcs`, `struct linux_mlist_v0`, `struct linux_mem_v0`, `struct linux_arguments_v0`, `struct linux_bootargs_v2`, `struct linux_romvec`, `struct linux_romvec`, `struct linux_nodeops`, `struct linux_prom_registers`.
- Atlas domain: Architecture Layer / arch/m68k.
- 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.