arch/powerpc/include/asm/cpuidle.h

Source file repositories/reference/linux-study-clean/arch/powerpc/include/asm/cpuidle.h

File Facts

System
Linux kernel
Corpus path
arch/powerpc/include/asm/cpuidle.h
Extension
.h
Size
3415 bytes
Lines
106
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct pnv_idle_states_t {
	char name[PNV_IDLE_NAME_LEN];
	u32 latency_ns;
	u32 residency_ns;
	u64 psscr_val;
	u64 psscr_mask;
	u32 flags;
	bool valid;
};

extern struct pnv_idle_states_t *pnv_idle_states;
extern int nr_pnv_idle_states;

unsigned long pnv_cpu_offline(unsigned int cpu);
int __init validate_psscr_val_mask(u64 *psscr_val, u64 *psscr_mask, u32 flags);
static inline void report_invalid_psscr_val(u64 psscr_val, int err)
{
	switch (err) {
	case ERR_EC_ESL_MISMATCH:
		pr_warn("Invalid psscr 0x%016llx : ESL,EC bits unequal",
			psscr_val);
		break;
	case ERR_DEEP_STATE_ESL_MISMATCH:
		pr_warn("Invalid psscr 0x%016llx : ESL cleared for deep stop-state",
			psscr_val);
	}
}
#endif

#endif

#endif

Annotation

Implementation Notes