X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Fscsi_id%2Fscsi_id.h;h=48e4a582311706741ac210b0a162748b5a0c05aa;hp=9edb39ec49c6c8cefca95aaeba4ff767ca15ccfc;hb=f183b6ed766a18835d53dc1e36a4e98756ebd0b7;hpb=b484e43622c04aaf4a2ca851bc7436b873530b1d diff --git a/extras/scsi_id/scsi_id.h b/extras/scsi_id/scsi_id.h index 9edb39ec4..48e4a5823 100644 --- a/extras/scsi_id/scsi_id.h +++ b/extras/scsi_id/scsi_id.h @@ -5,27 +5,12 @@ * * Copyright (C) IBM Corp. 2003 * - * This library is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of the - * License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation version 2 of the License. */ -#define dprintf(format, arg...) \ - log_message(LOG_DEBUG, "%s: " format, __FUNCTION__ , ## arg) - -#define MAX_NAME_LEN 72 -#define OFFSET (2 * sizeof(unsigned int)) +#define MAX_PATH_LEN 512 /* * MAX_ATTR_LEN: maximum length of the result of reading a sysfs @@ -37,7 +22,7 @@ * MAX_SERIAL_LEN: the maximum length of the serial number, including * added prefixes such as vendor and product (model) strings. */ -#define MAX_SERIAL_LEN 128 +#define MAX_SERIAL_LEN 256 /* * MAX_BUFFER_LEN: maximum buffer size and line length used while reading @@ -45,18 +30,27 @@ */ #define MAX_BUFFER_LEN 256 -extern int sysfs_get_attr(const char *devpath, const char *attr, char *value, - size_t bufsize); -extern int scsi_get_serial (struct sysfs_device *scsi_dev, const char - *devname, int page_code, char *serial, int - len); -extern void log_message (int level, const char *format, ...) - __attribute__ ((format (printf, 2, 3))); - -#ifdef __KLIBC__ -#define makedev(major, minor) ((major) << 8) | (minor) -#endif - -#ifndef u8 -typedef unsigned char u8; -#endif +struct scsi_id_device { + char vendor[9]; + char model[17]; + char revision[5]; + char type[33]; + char kernel[64]; + char serial[MAX_SERIAL_LEN]; + int use_sg; +}; + +extern int scsi_std_inquiry(struct udev *udev, struct scsi_id_device *dev_scsi, const char *devname); +extern int scsi_get_serial (struct udev *udev, struct scsi_id_device *dev_scsi, const char *devname, + int page_code, char *serial_short, int len); + +/* + * Page code values. + */ +enum page_code { + PAGE_83_PRE_SPC3 = -0x83, + PAGE_UNSPECIFIED = 0x00, + PAGE_80 = 0x80, + PAGE_83 = 0x83, +}; +