--- zzzz-none-000/linux-2.6.39.4/kernel/resource.c 2011-08-03 19:43:28.000000000 +0000 +++ puma6-atom-6490-729/linux-2.6.39.4/kernel/resource.c 2021-11-10 13:38:18.000000000 +0000 @@ -38,6 +38,37 @@ }; EXPORT_SYMBOL(iomem_resource); + +struct resource sflash_resource = { + .name = "SFLASH", + .start = 0, + .end = 1024*1024, + .flags = IORESOURCE_MEM, +}; +EXPORT_SYMBOL(sflash_resource); + +struct resource nand_flash_resource = { + .name = "NAND", + .start = 0, + .end = 1024*1024, /*--- Angaben in MByte ---*/ + .flags = IORESOURCE_MEM, +}; +EXPORT_SYMBOL(nand_flash_resource); + +struct resource gpio_resource = { + .name = "gpio", + .start = 0, +# if defined(CONFIG_MACH_PUMA6) || defined(CONFIG_X86) + .end = 133, +# elif defined(CONFIG_MIPS_FUSIV) + .end = 31, +# else /*--- #if defined(CONFIG_MIPS_FUSIV) ---*/ + .end = 64, +# endif /*--- #else ---*/ /*--- #if defined(CONFIG_MIPS_FUSIV) ---*/ + .flags = IORESOURCE_IO +}; +EXPORT_SYMBOL(gpio_resource); + static DEFINE_RWLOCK(resource_lock); static void *r_next(struct seq_file *m, void *v, loff_t *pos) @@ -131,10 +162,29 @@ .release = seq_release, }; +/*------------------------------------------------------------------------------------------*\ +\*------------------------------------------------------------------------------------------*/ +static int iogpio_open(struct inode *inode, struct file *file) +{ + int res = seq_open(file, &resource_op); + if (!res) { + struct seq_file *m = file->private_data; + m->private = &gpio_resource; + } + return res; +} + +static struct file_operations proc_gpio_operations = { + .open = iogpio_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; static int __init ioresources_init(void) { proc_create("ioports", 0, NULL, &proc_ioports_operations); proc_create("iomem", 0, NULL, &proc_iomem_operations); + proc_create("iogpio", 0, NULL, &proc_gpio_operations); return 0; } __initcall(ioresources_init);