arch/powerpc/platforms/ps3/platform.h
Source file repositories/reference/linux-study-clean/arch/powerpc/platforms/ps3/platform.h
File Facts
- System
- Linux kernel
- Corpus path
arch/powerpc/platforms/ps3/platform.h- Extension
.h- Size
- 8766 bytes
- Lines
- 254
- 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/rtc.hscsi/scsi.hasm/ps3.h
Detected Declarations
struct ps3_repository_deviceenum ps3_bus_typeenum ps3_dev_typeenum ps3_interrupt_typeenum ps3_reg_typeenum ps3_spu_resource_typefunction ps3_smp_cleanup_cpufunction ps3_spu_set_platformfunction ps3_repository_write_highmem_region_countfunction ps3_repository_write_highmem_basefunction ps3_repository_write_highmem_sizefunction ps3_repository_write_highmem_infofunction ps3_repository_delete_highmem_info
Annotated Snippet
struct ps3_repository_device {
unsigned int bus_index;
unsigned int dev_index;
enum ps3_bus_type bus_type;
enum ps3_dev_type dev_type;
u64 bus_id;
u64 dev_id;
};
int ps3_repository_find_device(struct ps3_repository_device *repo);
int ps3_repository_find_device_by_id(struct ps3_repository_device *repo,
u64 bus_id, u64 dev_id);
int __init ps3_repository_find_devices(enum ps3_bus_type bus_type,
int (*callback)(const struct ps3_repository_device *repo));
int __init ps3_repository_find_bus(enum ps3_bus_type bus_type, unsigned int from,
unsigned int *bus_index);
int ps3_repository_find_interrupt(const struct ps3_repository_device *repo,
enum ps3_interrupt_type intr_type, unsigned int *interrupt_id);
int ps3_repository_find_reg(const struct ps3_repository_device *repo,
enum ps3_reg_type reg_type, u64 *bus_addr, u64 *len);
/* repository block device info */
int ps3_repository_read_stor_dev_port(unsigned int bus_index,
unsigned int dev_index, u64 *port);
int ps3_repository_read_stor_dev_blk_size(unsigned int bus_index,
unsigned int dev_index, u64 *blk_size);
int ps3_repository_read_stor_dev_num_blocks(unsigned int bus_index,
unsigned int dev_index, u64 *num_blocks);
int ps3_repository_read_stor_dev_num_regions(unsigned int bus_index,
unsigned int dev_index, unsigned int *num_regions);
int ps3_repository_read_stor_dev_region_id(unsigned int bus_index,
unsigned int dev_index, unsigned int region_index,
unsigned int *region_id);
int ps3_repository_read_stor_dev_region_size(unsigned int bus_index,
unsigned int dev_index, unsigned int region_index, u64 *region_size);
int ps3_repository_read_stor_dev_region_start(unsigned int bus_index,
unsigned int dev_index, unsigned int region_index, u64 *region_start);
int ps3_repository_read_stor_dev_info(unsigned int bus_index,
unsigned int dev_index, u64 *port, u64 *blk_size,
u64 *num_blocks, unsigned int *num_regions);
int ps3_repository_read_stor_dev_region(unsigned int bus_index,
unsigned int dev_index, unsigned int region_index,
unsigned int *region_id, u64 *region_start, u64 *region_size);
/* repository logical pu and memory info */
int ps3_repository_read_num_pu(u64 *num_pu);
int ps3_repository_read_pu_id(unsigned int pu_index, u64 *pu_id);
int ps3_repository_read_rm_base(unsigned int ppe_id, u64 *rm_base);
int ps3_repository_read_rm_size(unsigned int ppe_id, u64 *rm_size);
int ps3_repository_read_region_total(u64 *region_total);
int ps3_repository_read_mm_info(u64 *rm_base, u64 *rm_size,
u64 *region_total);
int ps3_repository_read_highmem_region_count(unsigned int *region_count);
int ps3_repository_read_highmem_base(unsigned int region_index,
u64 *highmem_base);
int ps3_repository_read_highmem_size(unsigned int region_index,
u64 *highmem_size);
int ps3_repository_read_highmem_info(unsigned int region_index,
u64 *highmem_base, u64 *highmem_size);
#if defined (CONFIG_PS3_REPOSITORY_WRITE)
int ps3_repository_write_highmem_region_count(unsigned int region_count);
int ps3_repository_write_highmem_base(unsigned int region_index,
u64 highmem_base);
int ps3_repository_write_highmem_size(unsigned int region_index,
u64 highmem_size);
int ps3_repository_write_highmem_info(unsigned int region_index,
u64 highmem_base, u64 highmem_size);
int ps3_repository_delete_highmem_info(unsigned int region_index);
#else
static inline int ps3_repository_write_highmem_region_count(
unsigned int region_count) {return 0;}
static inline int ps3_repository_write_highmem_base(unsigned int region_index,
u64 highmem_base) {return 0;}
static inline int ps3_repository_write_highmem_size(unsigned int region_index,
u64 highmem_size) {return 0;}
static inline int ps3_repository_write_highmem_info(unsigned int region_index,
u64 highmem_base, u64 highmem_size) {return 0;}
static inline int ps3_repository_delete_highmem_info(unsigned int region_index)
{return 0;}
#endif
/* repository pme info */
int ps3_repository_read_num_be(unsigned int *num_be);
int ps3_repository_read_be_node_id(unsigned int be_index, u64 *node_id);
int ps3_repository_read_be_id(u64 node_id, u64 *be_id);
int __init ps3_repository_read_tb_freq(u64 node_id, u64 *tb_freq);
Annotation
- Immediate include surface: `linux/rtc.h`, `scsi/scsi.h`, `asm/ps3.h`.
- Detected declarations: `struct ps3_repository_device`, `enum ps3_bus_type`, `enum ps3_dev_type`, `enum ps3_interrupt_type`, `enum ps3_reg_type`, `enum ps3_spu_resource_type`, `function ps3_smp_cleanup_cpu`, `function ps3_spu_set_platform`, `function ps3_repository_write_highmem_region_count`, `function ps3_repository_write_highmem_base`.
- 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.