in proc.c [107:138]
static int nubus_proc_rsrc_show(struct seq_file *m, void *v)
{
struct inode *inode = m->private;
struct nubus_proc_pde_data *pde_data;
pde_data = PDE_DATA(inode);
if (!pde_data)
return 0;
if (pde_data->res_size > m->size)
return -EFBIG;
if (pde_data->res_size) {
int lanes = (int)proc_get_parent_data(inode);
struct nubus_dirent ent;
if (!lanes)
return 0;
ent.mask = lanes;
ent.base = pde_data->res_ptr;
ent.data = 0;
nubus_seq_write_rsrc_mem(m, &ent, pde_data->res_size);
} else {
unsigned int data = (unsigned int)pde_data->res_ptr;
seq_putc(m, data >> 16);
seq_putc(m, data >> 8);
seq_putc(m, data >> 0);
}
return 0;
}