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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }