SCSICmds_REPORT_LUNS_Definitions.h Reference

Declared in
SCSICmds_REPORT_LUNS_Definitions.h

Overview

This file contains all definitions for the data returned from the REPORT_LUNS (0xA0) command.

Included Headers

  • <IOKit/IOTypes.h>

  • <CoreFoundation/CoreFoundation.h>

Data Types

See the Overview section above for header-level documentation.

REPORT_LUNS_LOGICAL_UNIT_ADDRESSING

typedef struct REPORT_LUNS_LOGICAL_UNIT_ADDRESSING {
      #ifdef __LITTLE_ENDIAN__
      UInt16 LUN : 5;
      UInt16 BUS_NUMBER : 3;
      UInt16 TARGET : 6;
      UInt16 reserved2 : 1;
      UInt16 reserved : 1;
      #else /* !__LITTLE_ENDIAN__ */
      UInt16 reserved : 1;
      UInt16 reserved2 : 1;
      UInt16 TARGET : 6;
      UInt16 BUS_NUMBER : 3;
      UInt16 LUN : 5;
      #endif
      /* !__LITTLE_ENDIAN__ */
} REPORT_LUNS_LOGICAL_UNIT_ADDRESSING;
Discussion

This structure represents a LUN Addressing scheme.

Availability
  • Available in OS X v10.3 and later.
Declared In
SCSICmds_REPORT_LUNS_Definitions.h

REPORT_LUNS_PERIPHERAL_DEVICE_ADDRESSING

typedef struct REPORT_LUNS_PERIPHERAL_DEVICE_ADDRESSING {
      #ifdef __LITTLE_ENDIAN__
      UInt16 TARGET_LUN : 8;
      UInt16 BUS_IDENTIFIER : 6;
      UInt16 reserved2 : 1;
      UInt16 reserved : 1;
      #else /* !__LITTLE_ENDIAN__ */
      UInt16 reserved : 1;
      UInt16 reserved2 : 1;
      UInt16 BUS_IDENTIFIER : 6;
      UInt16 TARGET_LUN : 8;
      #endif
      /* !__LITTLE_ENDIAN__ */
} REPORT_LUNS_PERIPHERAL_DEVICE_ADDRESSING;
Discussion

This structure represents a Peripheral Device Addressing scheme.

Availability
  • Available in OS X v10.3 and later.
Declared In
SCSICmds_REPORT_LUNS_Definitions.h

SCSICmd_REPORT_LUNS_LUN_ENTRY

typedef struct SCSICmd_REPORT_LUNS_LUN_ENTRY {
      UInt16 FIRST_LEVEL_ADDRESSING;
      UInt16 SECOND_LEVEL_ADDRESSING;
      UInt16 THIRD_LEVEL_ADDRESSING;
      UInt16 FOURTH_LEVEL_ADDRESSING;
} SCSICmd_REPORT_LUNS_LUN_ENTRY;
Discussion

This structure represents a single LUN entry in a LUN list returned via the REPORT_LUNS command.

Availability
  • Available in OS X v10.3 and later.
Declared In
SCSICmds_REPORT_LUNS_Definitions.h

SCSICmd_REPORT_LUNS_Header

typedef struct SCSICmd_REPORT_LUNS_Header {
   UInt32 LUN_LIST_LENGTH; // LUN list length in bytes.
   UInt32 RESERVED;
   SCSICmd_REPORT_LUNS_LUN_ENTRY LUN[1]; // Variable length list. Must have at least LUN 0 if
} SCSICmd_REPORT_LUNS_Header;  // Target supports REPORT_LUNS command.
Discussion

This structure defines the format of the data that is returned for the REPORT_LUNS command.

Availability
  • Available in OS X v10.3 and later.
Declared In
SCSICmds_REPORT_LUNS_Definitions.h

Constants

See the Overview section above for header-level documentation.

Miscellaneous Defines

   
#define kREPORT_LUNS_HeaderSize 8
Constants
kREPORT_LUNS_HeaderSize

Size of the REPORT_LUNS header as defined in the SPC-3 specification.

Available in OS X v10.3 and later.

Declared in SCSICmds_REPORT_LUNS_Definitions.h.

REPORT_LUNS addressing methods.

enum {
   kREPORT_LUNS_ADDRESS_METHOD_PERIPHERAL_DEVICE = 0,
   kREPORT_LUNS_ADDRESS_METHOD_FLAT_SPACE = 1,
   kREPORT_LUNS_ADDRESS_DEVICE_TYPE_SPECIFIC = kREPORT_LUNS_ADDRESS_METHOD_FLAT_SPACE,
   kREPORT_LUNS_ADDRESS_METHOD_LOGICAL_UNIT = 2,
   // Reserved [3]
   kREPORT_LUNS_ADDRESS_METHOD_OFFSET = 14
};
Constants
kREPORT_LUNS_ADDRESS_METHOD_PERIPHERAL_DEVICE

Peripheral Device Addressing Method.

Available in OS X v10.3 and later.

Declared in SCSICmds_REPORT_LUNS_Definitions.h.

kREPORT_LUNS_ADDRESS_DEVICE_TYPE_SPECIFIC

Device Type Specific Addressing Method.

Available in OS X v10.3 and later.

Declared in SCSICmds_REPORT_LUNS_Definitions.h.

kREPORT_LUNS_ADDRESS_METHOD_LOGICAL_UNIT

Logical Unit Specific Addressing Method.

Available in OS X v10.3 and later.

Declared in SCSICmds_REPORT_LUNS_Definitions.h.

kREPORT_LUNS_ADDRESS_METHOD_OFFSET

Offset to the address method data.

Available in OS X v10.3 and later.

Declared in SCSICmds_REPORT_LUNS_Definitions.h.

Discussion

REPORT_LUNS addressing methods described in SAM-2 documents.