2010-06-21 18:55:16 +04:00
/*
2003-11-13 17:34:36 +03:00
* Copyright ( C ) IBM Corp . 2003
*
2010-06-25 13:39:21 +04:00
* 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 , either version 2 of the License , or
* ( at your option ) any later version .
*
* This program 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 General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
2003-11-13 17:34:36 +03:00
*/
2006-01-18 06:24:48 +03:00
# define MAX_PATH_LEN 512
2003-11-13 17:34:36 +03:00
2004-01-17 09:03:50 +03:00
/*
* MAX_ATTR_LEN : maximum length of the result of reading a sysfs
* attribute .
*/
# define MAX_ATTR_LEN 256
2003-12-07 19:55:40 +03:00
/*
* MAX_SERIAL_LEN : the maximum length of the serial number , including
* added prefixes such as vendor and product ( model ) strings .
*/
2004-06-26 12:18:17 +04:00
# define MAX_SERIAL_LEN 256
2003-12-07 19:55:40 +03:00
/*
* MAX_BUFFER_LEN : maximum buffer size and line length used while reading
* the config file .
*/
# define MAX_BUFFER_LEN 256
2008-05-14 15:42:41 +04:00
struct scsi_id_device {
char vendor [ 9 ] ;
char model [ 17 ] ;
char revision [ 5 ] ;
char type [ 33 ] ;
char kernel [ 64 ] ;
char serial [ MAX_SERIAL_LEN ] ;
2008-12-02 21:23:38 +03:00
char serial_short [ MAX_SERIAL_LEN ] ;
2008-05-14 15:55:49 +04:00
int use_sg ;
2009-11-21 04:21:58 +03:00
/* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */
char unit_serial_number [ MAX_SERIAL_LEN ] ;
/* NULs if not set - otherwise hex encoding using lower-case e.g. '50014ee0016eb572' */
char wwn [ 17 ] ;
2009-12-04 19:25:09 +03:00
/* NULs if not set - otherwise hex encoding using lower-case e.g. '0xe00000d80000' */
char wwn_vendor_extension [ 17 ] ;
2010-09-06 13:00:22 +04:00
/* NULs if not set - otherwise decimal number */
char tgpt_group [ 8 ] ;
2008-05-14 15:42:41 +04:00
} ;
2008-09-06 17:45:31 +04:00
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 ,
2008-12-02 21:23:38 +03:00
int page_code , int len ) ;
2005-09-14 22:23:48 +04:00
/*
2008-05-14 15:42:41 +04:00
* Page code values .
2005-09-14 22:23:48 +04:00
*/
enum page_code {
PAGE_83_PRE_SPC3 = - 0x83 ,
PAGE_UNSPECIFIED = 0x00 ,
PAGE_80 = 0x80 ,
PAGE_83 = 0x83 ,
} ;
2008-05-14 15:42:41 +04:00