Loading drivers/parport/procfs.c +189 −75 Original line number Diff line number Diff line Loading @@ -233,12 +233,12 @@ static int do_hardware_modes (ctl_table *table, int write, return copy_to_user(result, buffer, len) ? -EFAULT : 0; } #define PARPORT_PORT_DIR(child) { 0, NULL, NULL, 0, 0555, child } #define PARPORT_PARPORT_DIR(child) { DEV_PARPORT, "parport", \ NULL, 0, 0555, child } #define PARPORT_DEV_DIR(child) { CTL_DEV, "dev", NULL, 0, 0555, child } #define PARPORT_DEVICES_ROOT_DIR { DEV_PARPORT_DEVICES, "devices", \ NULL, 0, 0555, NULL } #define PARPORT_PORT_DIR(CHILD) { .ctl_name = 0, .procname = NULL, .mode = 0555, .child = CHILD } #define PARPORT_PARPORT_DIR(CHILD) { .ctl_name = DEV_PARPORT, .procname = "parport", \ .mode = 0555, .child = CHILD } #define PARPORT_DEV_DIR(CHILD) { .ctl_name = CTL_DEV, .procname = "dev", .mode = 0555, .child = CHILD } #define PARPORT_DEVICES_ROOT_DIR { .ctl_name = DEV_PARPORT_DEVICES, .procname = "devices", \ .mode = 0555, .child = NULL } static const unsigned long parport_min_timeslice_value = PARPORT_MIN_TIMESLICE_VALUE; Loading @@ -263,50 +263,118 @@ struct parport_sysctl_table { }; static const struct parport_sysctl_table parport_sysctl_template = { NULL, { { DEV_PARPORT_SPINTIME, "spintime", NULL, sizeof(int), 0644, NULL, &proc_dointvec_minmax, NULL, NULL, (void*) &parport_min_spintime_value, (void*) &parport_max_spintime_value }, { DEV_PARPORT_BASE_ADDR, "base-addr", NULL, 0, 0444, NULL, &do_hardware_base_addr }, { DEV_PARPORT_IRQ, "irq", NULL, 0, 0444, NULL, &do_hardware_irq }, { DEV_PARPORT_DMA, "dma", NULL, 0, 0444, NULL, &do_hardware_dma }, { DEV_PARPORT_MODES, "modes", NULL, 0, 0444, NULL, &do_hardware_modes }, .sysctl_header = NULL, { { .ctl_name = DEV_PARPORT_SPINTIME, .procname = "spintime", .data = NULL, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .extra1 = (void*) &parport_min_spintime_value, .extra2 = (void*) &parport_max_spintime_value }, { .ctl_name = DEV_PARPORT_BASE_ADDR, .procname = "base-addr", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_base_addr }, { .ctl_name = DEV_PARPORT_IRQ, .procname = "irq", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_irq }, { .ctl_name = DEV_PARPORT_DMA, .procname = "dma", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_dma }, { .ctl_name = DEV_PARPORT_MODES, .procname = "modes", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_modes }, PARPORT_DEVICES_ROOT_DIR, #ifdef CONFIG_PARPORT_1284 { DEV_PARPORT_AUTOPROBE, "autoprobe", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 1, "autoprobe0", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 2, "autoprobe1", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 3, "autoprobe2", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 4, "autoprobe3", NULL, 0, 0444, NULL, &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE, .procname = "autoprobe", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 1, .procname = "autoprobe0", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 2, .procname = "autoprobe1", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 3, .procname = "autoprobe2", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 4, .procname = "autoprobe3", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, #endif /* IEEE 1284 support */ {0} {} }, { { .ctl_name = DEV_PARPORT_DEVICES_ACTIVE, .procname = "active", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_active_device }, {} }, { PARPORT_PORT_DIR(NULL), {} }, { PARPORT_PARPORT_DIR(NULL), {} }, { {DEV_PARPORT_DEVICES_ACTIVE, "active", NULL, 0, 0444, NULL, &do_active_device }, {0}}, { PARPORT_PORT_DIR(NULL), {0}}, { PARPORT_PARPORT_DIR(NULL), {0}}, { PARPORT_DEV_DIR(NULL), {0}} { PARPORT_DEV_DIR(NULL), {} } }; struct parport_device_sysctl_table Loading @@ -322,19 +390,46 @@ struct parport_device_sysctl_table static const struct parport_device_sysctl_table parport_device_sysctl_template = { NULL, .sysctl_header = NULL, { { .ctl_name = DEV_PARPORT_DEVICE_TIMESLICE, .procname = "timeslice", .data = NULL, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_doulongvec_ms_jiffies_minmax, .extra1 = (void*) &parport_min_timeslice_value, .extra2 = (void*) &parport_max_timeslice_value }, }, { { .ctl_name = 0, .procname = NULL, .data = NULL, .maxlen = 0, .mode = 0555, .child = NULL }, {} }, { PARPORT_DEVICES_ROOT_DIR, {} }, { PARPORT_PORT_DIR(NULL), {} }, { { DEV_PARPORT_DEVICE_TIMESLICE, "timeslice", NULL, sizeof(int), 0644, NULL, &proc_doulongvec_ms_jiffies_minmax, NULL, NULL, (void*) &parport_min_timeslice_value, (void*) &parport_max_timeslice_value }, PARPORT_PARPORT_DIR(NULL), {} }, { {0, NULL, NULL, 0, 0555, NULL}, {0}}, { PARPORT_DEVICES_ROOT_DIR, {0}}, { PARPORT_PORT_DIR(NULL), {0}}, { PARPORT_PARPORT_DIR(NULL), {0}}, { PARPORT_DEV_DIR(NULL), {0}} { PARPORT_DEV_DIR(NULL), {} } }; struct parport_default_sysctl_table Loading @@ -351,28 +446,47 @@ extern int parport_default_spintime; static struct parport_default_sysctl_table parport_default_sysctl_table = { NULL, { { DEV_PARPORT_DEFAULT_TIMESLICE, "timeslice", &parport_default_timeslice, sizeof(parport_default_timeslice), 0644, NULL, &proc_doulongvec_ms_jiffies_minmax, NULL, NULL, (void*) &parport_min_timeslice_value, (void*) &parport_max_timeslice_value }, { DEV_PARPORT_DEFAULT_SPINTIME, "spintime", &parport_default_spintime, sizeof(parport_default_spintime), 0644, NULL, &proc_dointvec_minmax, NULL, NULL, (void*) &parport_min_spintime_value, (void*) &parport_max_spintime_value }, {0} .sysctl_header = NULL, { { .ctl_name = DEV_PARPORT_DEFAULT_TIMESLICE, .procname = "timeslice", .data = &parport_default_timeslice, .maxlen = sizeof(parport_default_timeslice), .mode = 0644, .proc_handler = &proc_doulongvec_ms_jiffies_minmax, .extra1 = (void*) &parport_min_timeslice_value, .extra2 = (void*) &parport_max_timeslice_value }, { .ctl_name = DEV_PARPORT_DEFAULT_SPINTIME, .procname = "spintime", .data = &parport_default_spintime, .maxlen = sizeof(parport_default_spintime), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .extra1 = (void*) &parport_min_spintime_value, .extra2 = (void*) &parport_max_spintime_value }, {} }, { { .ctl_name = DEV_PARPORT_DEFAULT, .procname = "default", .mode = 0555, .child = parport_default_sysctl_table.vars }, {} }, { { DEV_PARPORT_DEFAULT, "default", NULL, 0, 0555, parport_default_sysctl_table.vars },{0}}, { PARPORT_PARPORT_DIR(parport_default_sysctl_table.default_dir), {0}}, { PARPORT_DEV_DIR(parport_default_sysctl_table.parport_dir), {0}} {} }, { PARPORT_DEV_DIR(parport_default_sysctl_table.parport_dir), {} } }; Loading Loading
drivers/parport/procfs.c +189 −75 Original line number Diff line number Diff line Loading @@ -233,12 +233,12 @@ static int do_hardware_modes (ctl_table *table, int write, return copy_to_user(result, buffer, len) ? -EFAULT : 0; } #define PARPORT_PORT_DIR(child) { 0, NULL, NULL, 0, 0555, child } #define PARPORT_PARPORT_DIR(child) { DEV_PARPORT, "parport", \ NULL, 0, 0555, child } #define PARPORT_DEV_DIR(child) { CTL_DEV, "dev", NULL, 0, 0555, child } #define PARPORT_DEVICES_ROOT_DIR { DEV_PARPORT_DEVICES, "devices", \ NULL, 0, 0555, NULL } #define PARPORT_PORT_DIR(CHILD) { .ctl_name = 0, .procname = NULL, .mode = 0555, .child = CHILD } #define PARPORT_PARPORT_DIR(CHILD) { .ctl_name = DEV_PARPORT, .procname = "parport", \ .mode = 0555, .child = CHILD } #define PARPORT_DEV_DIR(CHILD) { .ctl_name = CTL_DEV, .procname = "dev", .mode = 0555, .child = CHILD } #define PARPORT_DEVICES_ROOT_DIR { .ctl_name = DEV_PARPORT_DEVICES, .procname = "devices", \ .mode = 0555, .child = NULL } static const unsigned long parport_min_timeslice_value = PARPORT_MIN_TIMESLICE_VALUE; Loading @@ -263,50 +263,118 @@ struct parport_sysctl_table { }; static const struct parport_sysctl_table parport_sysctl_template = { NULL, { { DEV_PARPORT_SPINTIME, "spintime", NULL, sizeof(int), 0644, NULL, &proc_dointvec_minmax, NULL, NULL, (void*) &parport_min_spintime_value, (void*) &parport_max_spintime_value }, { DEV_PARPORT_BASE_ADDR, "base-addr", NULL, 0, 0444, NULL, &do_hardware_base_addr }, { DEV_PARPORT_IRQ, "irq", NULL, 0, 0444, NULL, &do_hardware_irq }, { DEV_PARPORT_DMA, "dma", NULL, 0, 0444, NULL, &do_hardware_dma }, { DEV_PARPORT_MODES, "modes", NULL, 0, 0444, NULL, &do_hardware_modes }, .sysctl_header = NULL, { { .ctl_name = DEV_PARPORT_SPINTIME, .procname = "spintime", .data = NULL, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .extra1 = (void*) &parport_min_spintime_value, .extra2 = (void*) &parport_max_spintime_value }, { .ctl_name = DEV_PARPORT_BASE_ADDR, .procname = "base-addr", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_base_addr }, { .ctl_name = DEV_PARPORT_IRQ, .procname = "irq", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_irq }, { .ctl_name = DEV_PARPORT_DMA, .procname = "dma", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_dma }, { .ctl_name = DEV_PARPORT_MODES, .procname = "modes", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_hardware_modes }, PARPORT_DEVICES_ROOT_DIR, #ifdef CONFIG_PARPORT_1284 { DEV_PARPORT_AUTOPROBE, "autoprobe", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 1, "autoprobe0", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 2, "autoprobe1", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 3, "autoprobe2", NULL, 0, 0444, NULL, &do_autoprobe }, { DEV_PARPORT_AUTOPROBE + 4, "autoprobe3", NULL, 0, 0444, NULL, &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE, .procname = "autoprobe", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 1, .procname = "autoprobe0", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 2, .procname = "autoprobe1", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 3, .procname = "autoprobe2", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, { .ctl_name = DEV_PARPORT_AUTOPROBE + 4, .procname = "autoprobe3", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_autoprobe }, #endif /* IEEE 1284 support */ {0} {} }, { { .ctl_name = DEV_PARPORT_DEVICES_ACTIVE, .procname = "active", .data = NULL, .maxlen = 0, .mode = 0444, .proc_handler = &do_active_device }, {} }, { PARPORT_PORT_DIR(NULL), {} }, { PARPORT_PARPORT_DIR(NULL), {} }, { {DEV_PARPORT_DEVICES_ACTIVE, "active", NULL, 0, 0444, NULL, &do_active_device }, {0}}, { PARPORT_PORT_DIR(NULL), {0}}, { PARPORT_PARPORT_DIR(NULL), {0}}, { PARPORT_DEV_DIR(NULL), {0}} { PARPORT_DEV_DIR(NULL), {} } }; struct parport_device_sysctl_table Loading @@ -322,19 +390,46 @@ struct parport_device_sysctl_table static const struct parport_device_sysctl_table parport_device_sysctl_template = { NULL, .sysctl_header = NULL, { { .ctl_name = DEV_PARPORT_DEVICE_TIMESLICE, .procname = "timeslice", .data = NULL, .maxlen = sizeof(int), .mode = 0644, .proc_handler = &proc_doulongvec_ms_jiffies_minmax, .extra1 = (void*) &parport_min_timeslice_value, .extra2 = (void*) &parport_max_timeslice_value }, }, { { .ctl_name = 0, .procname = NULL, .data = NULL, .maxlen = 0, .mode = 0555, .child = NULL }, {} }, { PARPORT_DEVICES_ROOT_DIR, {} }, { PARPORT_PORT_DIR(NULL), {} }, { { DEV_PARPORT_DEVICE_TIMESLICE, "timeslice", NULL, sizeof(int), 0644, NULL, &proc_doulongvec_ms_jiffies_minmax, NULL, NULL, (void*) &parport_min_timeslice_value, (void*) &parport_max_timeslice_value }, PARPORT_PARPORT_DIR(NULL), {} }, { {0, NULL, NULL, 0, 0555, NULL}, {0}}, { PARPORT_DEVICES_ROOT_DIR, {0}}, { PARPORT_PORT_DIR(NULL), {0}}, { PARPORT_PARPORT_DIR(NULL), {0}}, { PARPORT_DEV_DIR(NULL), {0}} { PARPORT_DEV_DIR(NULL), {} } }; struct parport_default_sysctl_table Loading @@ -351,28 +446,47 @@ extern int parport_default_spintime; static struct parport_default_sysctl_table parport_default_sysctl_table = { NULL, { { DEV_PARPORT_DEFAULT_TIMESLICE, "timeslice", &parport_default_timeslice, sizeof(parport_default_timeslice), 0644, NULL, &proc_doulongvec_ms_jiffies_minmax, NULL, NULL, (void*) &parport_min_timeslice_value, (void*) &parport_max_timeslice_value }, { DEV_PARPORT_DEFAULT_SPINTIME, "spintime", &parport_default_spintime, sizeof(parport_default_spintime), 0644, NULL, &proc_dointvec_minmax, NULL, NULL, (void*) &parport_min_spintime_value, (void*) &parport_max_spintime_value }, {0} .sysctl_header = NULL, { { .ctl_name = DEV_PARPORT_DEFAULT_TIMESLICE, .procname = "timeslice", .data = &parport_default_timeslice, .maxlen = sizeof(parport_default_timeslice), .mode = 0644, .proc_handler = &proc_doulongvec_ms_jiffies_minmax, .extra1 = (void*) &parport_min_timeslice_value, .extra2 = (void*) &parport_max_timeslice_value }, { .ctl_name = DEV_PARPORT_DEFAULT_SPINTIME, .procname = "spintime", .data = &parport_default_spintime, .maxlen = sizeof(parport_default_spintime), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .extra1 = (void*) &parport_min_spintime_value, .extra2 = (void*) &parport_max_spintime_value }, {} }, { { .ctl_name = DEV_PARPORT_DEFAULT, .procname = "default", .mode = 0555, .child = parport_default_sysctl_table.vars }, {} }, { { DEV_PARPORT_DEFAULT, "default", NULL, 0, 0555, parport_default_sysctl_table.vars },{0}}, { PARPORT_PARPORT_DIR(parport_default_sysctl_table.default_dir), {0}}, { PARPORT_DEV_DIR(parport_default_sysctl_table.parport_dir), {0}} {} }, { PARPORT_DEV_DIR(parport_default_sysctl_table.parport_dir), {} } }; Loading