arch/sparc/include/asm/oplib_64.h
Source file repositories/reference/linux-study-clean/arch/sparc/include/asm/oplib_64.h
File Facts
- System
- Linux kernel
- Corpus path
arch/sparc/include/asm/oplib_64.h- Extension
.h- Size
- 8357 bytes
- Lines
- 254
- Domain
- Architecture Layer
- Bucket
- arch/sparc
- 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
asm/openprom.h
Detected Declarations
struct linux_mlist_p1275struct linux_mem_p1275
Annotated Snippet
struct linux_mlist_p1275 {
struct linux_mlist_p1275 *theres_more;
unsigned long start_adr;
unsigned long num_bytes;
};
struct linux_mem_p1275 {
struct linux_mlist_p1275 **p1275_totphys;
struct linux_mlist_p1275 **p1275_prommap;
struct linux_mlist_p1275 **p1275_available; /* What we can use */
};
/* The functions... */
/* You must call prom_init() before using any of the library services,
* preferably as early as possible. Pass it the romvec pointer.
*/
void prom_init(void *cif_handler);
void prom_init_report(void);
/* Boot argument acquisition, returns the boot command line string. */
char *prom_getbootargs(void);
/* Miscellaneous routines, don't really fit in any category per se. */
/* Reboot the machine with the command line passed. */
void prom_reboot(const char *boot_command);
/* Evaluate the forth string passed. */
void prom_feval(const char *forth_string);
/* Enter the prom, with possibility of continuation with the 'go'
* command in newer proms.
*/
void prom_cmdline(void);
/* Enter the prom, with no chance of continuation for the stand-alone
* which calls this.
*/
void prom_halt(void) __attribute__ ((noreturn));
/* Halt and power-off the machine. */
void prom_halt_power_off(void) __attribute__ ((noreturn));
/* Acquire the IDPROM of the root node in the prom device tree. This
* gets passed a buffer where you would like it stuffed. The return value
* is the format type of this idprom or 0xff on error.
*/
unsigned char prom_get_idprom(char *idp_buffer, int idpbuf_size);
/* Write a buffer of characters to the console. */
void prom_console_write_buf(const char *buf, int len);
/* Prom's internal routines, don't use in kernel/boot code. */
__printf(1, 2) void prom_printf(const char *fmt, ...);
void prom_write(const char *buf, unsigned int len);
/* Multiprocessor operations... */
#ifdef CONFIG_SMP
/* Start the CPU with the given device tree node at the passed program
* counter with the given arg passed in via register %o0.
*/
void prom_startcpu(int cpunode, unsigned long pc, unsigned long arg);
/* Start the CPU with the given cpu ID at the passed program
* counter with the given arg passed in via register %o0.
*/
void prom_startcpu_cpuid(int cpuid, unsigned long pc, unsigned long arg);
/* Stop the CPU with the given cpu ID. */
void prom_stopcpu_cpuid(int cpuid);
/* Stop the current CPU. */
void prom_stopself(void);
/* Idle the current CPU. */
void prom_idleself(void);
/* Resume the CPU with the passed device tree node. */
void prom_resumecpu(int cpunode);
#endif
/* Power management interfaces. */
/* Put the current CPU to sleep. */
void prom_sleepself(void);
/* Put the entire system to sleep. */
int prom_sleepsystem(void);
Annotation
- Immediate include surface: `asm/openprom.h`.
- Detected declarations: `struct linux_mlist_p1275`, `struct linux_mem_p1275`.
- Atlas domain: Architecture Layer / arch/sparc.
- 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.