in kernel/palinfo.c [420:457]
static int register_info(struct seq_file *m)
{
u64 reg_info[2];
u64 info;
unsigned long phys_stacked;
pal_hints_u_t hints;
unsigned long iregs, dregs;
static const char * const info_type[] = {
"Implemented AR(s)",
"AR(s) with read side-effects",
"Implemented CR(s)",
"CR(s) with read side-effects",
};
for(info=0; info < 4; info++) {
if (ia64_pal_register_info(info, ®_info[0], ®_info[1]) != 0)
return 0;
seq_printf(m, "%-32s : ", info_type[info]);
bitregister_process(m, reg_info, 128);
seq_putc(m, '\n');
}
if (ia64_pal_rse_info(&phys_stacked, &hints) == 0)
seq_printf(m,
"RSE stacked physical registers : %ld\n"
"RSE load/store hints : %ld (%s)\n",
phys_stacked, hints.ph_data,
hints.ph_data < RSE_HINTS_COUNT ? rse_hints[hints.ph_data]: "(??)");
if (ia64_pal_debug_info(&iregs, &dregs))
return 0;
seq_printf(m,
"Instruction debug register pairs : %ld\n"
"Data debug register pairs : %ld\n", iregs, dregs);
return 0;
}