示例#1
0
    err = ide_no_data_taskfile(drive, &task);

    if (!err) {
        ide_set_xfer_rate(drive, (u8) arg);
        ide_driveid_update(drive);
    }
    return err;
}

ide_devset_rw(current_speed, xfer_rate);
ide_devset_rw_field(init_speed, init_speed);
ide_devset_rw_flag(nice1, IDE_DFLAG_NICE1);
ide_devset_rw_field(number, dn);

static const struct ide_proc_devset ide_generic_settings[] = {
    IDE_PROC_DEVSET(current_speed, 0, 70),
    IDE_PROC_DEVSET(init_speed, 0, 70),
    IDE_PROC_DEVSET(io_32bit,  0, 1 + (SUPPORT_VLB_SYNC << 1)),
    IDE_PROC_DEVSET(keepsettings, 0, 1),
    IDE_PROC_DEVSET(nice1, 0, 1),
    IDE_PROC_DEVSET(number, 0, 3),
    IDE_PROC_DEVSET(pio_mode, 0, 255),
    IDE_PROC_DEVSET(unmaskirq, 0, 1),
    IDE_PROC_DEVSET(using_dma, 0, 1),
    { NULL },
};

static void proc_ide_settings_warn(void)
{
    static int warned;
#include "ide-floppy.h"

static int proc_idefloppy_read_capacity(char *page, char **start, off_t off,
		int count, int *eof, void *data)
{
	ide_drive_t*drive = (ide_drive_t *)data;
	int len;

	len = sprintf(page, "%llu\n", (long long)ide_gd_capacity(drive));
	PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}

ide_proc_entry_t ide_floppy_proc[] = {
	{ "capacity",	S_IFREG|S_IRUGO, proc_idefloppy_read_capacity,	NULL },
	{ "geometry",	S_IFREG|S_IRUGO, proc_ide_read_geometry,	NULL },
	{ NULL, 0, NULL, NULL }
};

ide_devset_rw_field(bios_cyl, bios_cyl);
ide_devset_rw_field(bios_head, bios_head);
ide_devset_rw_field(bios_sect, bios_sect);
ide_devset_rw_field(ticks, pc_delay);

const struct ide_proc_devset ide_floppy_settings[] = {
	IDE_PROC_DEVSET(bios_cyl,  0, 1023),
	IDE_PROC_DEVSET(bios_head, 0,  255),
	IDE_PROC_DEVSET(bios_sect, 0,   63),
	IDE_PROC_DEVSET(ticks,	   0,  255),
	{ NULL },
};