Date: Tue, 15 May 2012 22:55:24 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r235489 - in projects/zfsd/head: sys/cam/scsi usr.bin/kdump Message-ID: <201205152255.q4FMtOmn009596@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Tue May 15 22:55:23 2012 New Revision: 235489 URL: http://svn.freebsd.org/changeset/base/235489 Log: Restore old API/ABI compatibility to make this code mergeable. Modified: projects/zfsd/head/sys/cam/scsi/scsi_enc.h projects/zfsd/head/sys/cam/scsi/scsi_ses.h projects/zfsd/head/usr.bin/kdump/mkioctls Modified: projects/zfsd/head/sys/cam/scsi/scsi_enc.h ============================================================================== --- projects/zfsd/head/sys/cam/scsi/scsi_enc.h Tue May 15 22:50:47 2012 (r235488) +++ projects/zfsd/head/sys/cam/scsi/scsi_enc.h Tue May 15 22:55:23 2012 (r235489) @@ -125,10 +125,10 @@ typedef struct encioc_element { unsigned int elm_idx; /* ID of SubEnclosure containing Element*/ - unsigned int elm_subenc_id; + unsigned char elm_subenc_id; /* Element Type */ - elm_type_t elm_type; + unsigned char elm_type; } encioc_element_t; /* Modified: projects/zfsd/head/sys/cam/scsi/scsi_ses.h ============================================================================== --- projects/zfsd/head/sys/cam/scsi/scsi_ses.h Tue May 15 22:50:47 2012 (r235488) +++ projects/zfsd/head/sys/cam/scsi/scsi_ses.h Tue May 15 22:55:23 2012 (r235489) @@ -32,8 +32,107 @@ #ifndef _SCSI_SES_H_ #define _SCSI_SES_H_ +#include <sys/cdefs.h> +#include <sys/stdint.h> #include <cam/scsi/scsi_all.h> +#if 1 /* Legacy API compatibility */ + +#define SESIOC ('s' - 040) +#define SESIOC_GETNOBJ _IO(SESIOC, 1) +#define SESIOC_GETOBJMAP _IO(SESIOC, 2) +#define SESIOC_GETENCSTAT _IO(SESIOC, 3) +#define SESIOC_SETENCSTAT _IO(SESIOC, 4) +#define SESIOC_GETOBJSTAT _IO(SESIOC, 5) +#define SESIOC_SETOBJSTAT _IO(SESIOC, 6) +#define SESIOC_GETTEXT _IO(SESIOC, 7) +#define SESIOC_INIT _IO(SESIOC, 8) + +typedef struct { + unsigned int obj_id; /* Object Identifier */ + unsigned char subencid; /* SubEnclosure ID */ + unsigned char object_type; /* Object Type */ +} ses_object; + +/* Object Types */ +#define SESTYP_UNSPECIFIED 0x00 +#define SESTYP_DEVICE 0x01 +#define SESTYP_POWER 0x02 +#define SESTYP_FAN 0x03 +#define SESTYP_THERM 0x04 +#define SESTYP_DOORLOCK 0x05 +#define SESTYP_ALARM 0x06 +#define SESTYP_ESCC 0x07 /* Enclosure SCC */ +#define SESTYP_SCC 0x08 /* SCC */ +#define SESTYP_NVRAM 0x09 +#define SESTYP_UPS 0x0b +#define SESTYP_DISPLAY 0x0c +#define SESTYP_KEYPAD 0x0d +#define SESTYP_ENCLOSURE 0x0e +#define SESTYP_SCSIXVR 0x0f +#define SESTYP_LANGUAGE 0x10 +#define SESTYP_COMPORT 0x11 +#define SESTYP_VOM 0x12 +#define SESTYP_AMMETER 0x13 +#define SESTYP_SCSI_TGT 0x14 +#define SESTYP_SCSI_INI 0x15 +#define SESTYP_SUBENC 0x16 +#define SESTYP_ARRAY 0x17 +#define SESTYP_SASEXPANDER 0x18 +#define SESTYP_SASCONNECTOR 0x19 + +/* + * Overall Enclosure Status + */ +typedef unsigned char ses_encstat; + +/* + * Object Status + */ +typedef struct { + unsigned int obj_id; + unsigned char cstat[4]; +} ses_objstat; + +/* Summary SES Status Defines, Common Status Codes */ +#define SES_OBJSTAT_UNSUPPORTED 0 +#define SES_OBJSTAT_OK 1 +#define SES_OBJSTAT_CRIT 2 +#define SES_OBJSTAT_NONCRIT 3 +#define SES_OBJSTAT_UNRECOV 4 +#define SES_OBJSTAT_NOTINSTALLED 5 +#define SES_OBJSTAT_UNKNOWN 6 +#define SES_OBJSTAT_NOTAVAIL 7 + +/* + * For control pages, cstat[0] is the same for the + * enclosure and is common across all device types. + * + * If SESCTL_CSEL is set, then PRDFAIL, DISABLE and RSTSWAP + * are checked, otherwise bits that are specific to the device + * type in the other 3 bytes of cstat or checked. + */ +#define SESCTL_CSEL 0x80 +#define SESCTL_PRDFAIL 0x40 +#define SESCTL_DISABLE 0x20 +#define SESCTL_RSTSWAP 0x10 + + +/* Control bits, Device Elements, byte 2 */ +#define SESCTL_DRVLCK 0x40 /* "DO NOT REMOVE" */ +#define SESCTL_RQSINS 0x08 /* RQST INSERT */ +#define SESCTL_RQSRMV 0x04 /* RQST REMOVE */ +#define SESCTL_RQSID 0x02 /* RQST IDENT */ +/* Control bits, Device Elements, byte 3 */ +#define SESCTL_RQSFLT 0x20 /* RQST FAULT */ +#define SESCTL_DEVOFF 0x10 /* DEVICE OFF */ + +/* Control bits, Generic, byte 3 */ +#define SESCTL_RQSTFAIL 0x40 +#define SESCTL_RQSTON 0x20 + +#endif /* Legacy API compatibility */ + /*========================== Field Extraction Macros =========================*/ #define MK_ENUM(S, F, SUFFIX) S ## _ ## F ## SUFFIX @@ -92,7 +191,7 @@ ses_page_length(const struct ses_page_hd * code field. */ return (scsi_2btoul(hdr->length) - + offsetof(struct ses_page_hdr, gen_code)); + + __offsetof(struct ses_page_hdr, gen_code)); } /*============= SCSI ENC Configuration Diagnostic Page Structures ============*/ Modified: projects/zfsd/head/usr.bin/kdump/mkioctls ============================================================================== --- projects/zfsd/head/usr.bin/kdump/mkioctls Tue May 15 22:50:47 2012 (r235488) +++ projects/zfsd/head/usr.bin/kdump/mkioctls Tue May 15 22:55:23 2012 (r235489) @@ -63,8 +63,6 @@ BEGIN { print "#include <netinet6/ip6_mroute.h>" print "#include <stdio.h>" print "#include <cam/cam.h>" - print "#include <stddef.h>" - print "#include <stdint.h>" print "" print ioctl_includes print ""
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205152255.q4FMtOmn009596>