Ejemplo n.º 1
0
static int proc_ide_read_imodel
    (char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_hwif_t    *hwif = (ide_hwif_t *) data;
    int        len;
    const char    *name;

    switch (hwif->chipset) {
    case ide_generic:    name = "generic";    break;
    case ide_pci:        name = "pci";        break;
    case ide_cmd640:    name = "cmd640";    break;
    case ide_dtc2278:    name = "dtc2278";    break;
    case ide_ali14xx:    name = "ali14xx";    break;
    case ide_qd65xx:    name = "qd65xx";    break;
    case ide_umc8672:    name = "umc8672";    break;
    case ide_ht6560b:    name = "ht6560b";    break;
    case ide_rz1000:    name = "rz1000";    break;
    case ide_trm290:    name = "trm290";    break;
    case ide_cmd646:    name = "cmd646";    break;
    case ide_cy82c693:    name = "cy82c693";    break;
    case ide_4drives:    name = "4drives";    break;
    case ide_pmac:        name = "mac-io";    break;
    case ide_au1xxx:    name = "au1xxx";    break;
    case ide_palm3710:      name = "palm3710";      break;
    case ide_acorn:        name = "acorn";        break;
    default:        name = "(unknown)";    break;
    }
    len = sprintf(page, "%s\n", name);
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 2
0
static int proc_ide_read_media
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t	*drive = (ide_drive_t *) data;
    const char	*media;
    int		len;

    switch (drive->media) {
    case ide_disk:
        media = "disk\n";
        break;
    case ide_cdrom:
        media = "cdrom\n";
        break;
    case ide_tape:
        media = "tape\n";
        break;
    case ide_floppy:
        media = "floppy\n";
        break;
    case ide_optical:
        media = "optical\n";
        break;
    default:
        media = "UNKNOWN\n";
        break;
    }
    strcpy(page, media);
    len = strlen(media);
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 3
0
static int proc_ide_read_identify
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t	*drive = (ide_drive_t *)data;
    int		len = 0, i = 0;
    int		err = 0;

    len = sprintf(page, "\n");

    if (drive) {
        __le16 *val = (__le16 *)page;

        err = taskfile_lib_get_identify(drive, page);
        if (!err) {
            char *out = (char *)page + SECTOR_SIZE;

            page = out;
            do {
                out += sprintf(out, "%04x%c",
                               le16_to_cpup(val), (++i & 7) ? ' ' : '\n');
                val += 1;
            } while (i < SECTOR_SIZE / 2);
            len = out - page;
        }
    }
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 4
0
static int proc_ide_read_settings
    (char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t    *drive = (ide_drive_t *) data;
    ide_settings_t    *setting = (ide_settings_t *) drive->settings;
    char        *out = page;
    int        len, rc, mul_factor, div_factor;

    proc_ide_settings_warn();

    mutex_lock(&ide_setting_mtx);
    out += sprintf(out, "name\t\t\tvalue\t\tmin\t\tmax\t\tmode\n");
    out += sprintf(out, "----\t\t\t-----\t\t---\t\t---\t\t----\n");
    while (setting) {
        mul_factor = setting->mul_factor;
        div_factor = setting->div_factor;
        out += sprintf(out, "%-24s", setting->name);
        rc = ide_read_setting(drive, setting);
        if (rc >= 0)
            out += sprintf(out, "%-16d", rc * mul_factor / div_factor);
        else
            out += sprintf(out, "%-16s", "write-only");
        out += sprintf(out, "%-16d%-16d", (setting->min * mul_factor + div_factor - 1) / div_factor, setting->max * mul_factor / div_factor);
        if (setting->rw & SETTING_READ)
            out += sprintf(out, "r");
        if (setting->rw & SETTING_WRITE)
            out += sprintf(out, "w");
        out += sprintf(out, "\n");
        setting = setting->next;
    }
    len = out - page;
    mutex_unlock(&ide_setting_mtx);
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
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);
}
Ejemplo n.º 6
0
static int proc_ide_read_dmodel
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t	*drive = (ide_drive_t *) data;
    char		*m = (char *)&drive->id[ATA_ID_PROD];
    int		len;

    len = sprintf(page, "%.40s\n", m[0] ? m : "(none)");
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 7
0
static int proc_ide_read_channel
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_hwif_t	*hwif = (ide_hwif_t *) data;
    int		len;

    page[0] = hwif->channel ? '1' : '0';
    page[1] = '\n';
    len = 2;
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 8
0
static int proc_ide_read_dmodel
    (char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t    *drive = (ide_drive_t *) data;
    struct hd_driveid *id = drive->id;
    int        len;

    len = sprintf(page, "%.40s\n",
        (id && id->model[0]) ? (char *)id->model : "(none)");
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 9
0
static int proc_ide_read_mate
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_hwif_t	*hwif = (ide_hwif_t *) data;
    int		len;

    if (hwif && hwif->mate)
        len = sprintf(page, "%s\n", hwif->mate->name);
    else
        len = sprintf(page, "(none)\n");
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 10
0
int proc_ide_read_geometry
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t	*drive = (ide_drive_t *) data;
    char		*out = page;
    int		len;

    out += sprintf(out, "physical     %d/%d/%d\n",
                   drive->cyl, drive->head, drive->sect);
    out += sprintf(out, "logical      %d/%d/%d\n",
                   drive->bios_cyl, drive->bios_head, drive->bios_sect);

    len = out - page;
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 11
0
static int proc_ide_read_driver
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    ide_drive_t		*drive = (ide_drive_t *)data;
    struct device		*dev = &drive->gendev;
    struct ide_driver	*ide_drv;
    int			len;

    if (dev->driver) {
        ide_drv = to_ide_driver(dev->driver);
        len = sprintf(page, "%s version %s\n",
                      dev->driver->name, ide_drv->version);
    } else
        len = sprintf(page, "ide-default version 0.9.newide\n");
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 12
0
static int proc_ide_read_settings
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    const struct ide_proc_devset *setting, *g, *d;
    const struct ide_devset *ds;
    ide_drive_t	*drive = (ide_drive_t *) data;
    char		*out = page;
    int		len, rc, mul_factor, div_factor;

    proc_ide_settings_warn();

    mutex_lock(&ide_setting_mtx);
    g = ide_generic_settings;
    d = drive->settings;
    out += sprintf(out, "name\t\t\tvalue\t\tmin\t\tmax\t\tmode\n");
    out += sprintf(out, "----\t\t\t-----\t\t---\t\t---\t\t----\n");
    while (g->name || (d && d->name)) {
        /* read settings in the alphabetical order */
        if (g->name && d && d->name) {
            if (strcmp(d->name, g->name) < 0)
                setting = d++;
            else
                setting = g++;
        } else if (d && d->name) {
            setting = d++;
        } else
            setting = g++;
        mul_factor = setting->mulf ? setting->mulf(drive) : 1;
        div_factor = setting->divf ? setting->divf(drive) : 1;
        out += sprintf(out, "%-24s", setting->name);
        rc = ide_read_setting(drive, setting);
        if (rc >= 0)
            out += sprintf(out, "%-16d", rc * mul_factor / div_factor);
        else
            out += sprintf(out, "%-16s", "write-only");
        out += sprintf(out, "%-16d%-16d", (setting->min * mul_factor + div_factor - 1) / div_factor, setting->max * mul_factor / div_factor);
        ds = setting->setting;
        if (ds->get)
            out += sprintf(out, "r");
        if (ds->set)
            out += sprintf(out, "w");
        out += sprintf(out, "\n");
    }
    len = out - page;
    mutex_unlock(&ide_setting_mtx);
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}
Ejemplo n.º 13
0
static int proc_ide_read_driver
	(char *page, char **start, off_t off, int count, int *eof, void *data)
{
	ide_drive_t	*drive = (ide_drive_t *) data;
	struct device	*dev = &drive->gendev;
	ide_driver_t	*ide_drv;
	int		len;

	down_read(&dev->bus->subsys.rwsem);
	if (dev->driver) {
		ide_drv = container_of(dev->driver, ide_driver_t, gen_driver);
		len = sprintf(page, "%s version %s\n",
				dev->driver->name, ide_drv->version);
	} else
		len = sprintf(page, "ide-default version 0.9.newide\n");
	up_read(&dev->bus->subsys.rwsem);
	PROC_IDE_READ_RETURN(page,start,off,count,eof,len);
}
Ejemplo n.º 14
0
int proc_ide_read_capacity
(char *page, char **start, off_t off, int count, int *eof, void *data)
{
    int len = sprintf(page, "%llu\n", (long long)0x7fffffff);
    PROC_IDE_READ_RETURN(page, start, off, count, eof, len);
}