Go to main content

man pages section 3: Extended Library Functions, Volume 2

Exit Print View

Updated: Thursday, June 13, 2019
 
 

IMA_LuReportLuns (3IMA)

Name

IMA_LuReportLuns - Gets the SCSI REPORT LUNS data for the specified logical unit

Synopsis

cc [ flag... ] file... -lima [ library... ]
#include <ima.h>

IMA_STATUS IMA_LuReportLuns(
    /* in */      IMA_OID deviceOid,
    /* in */      IMA_BOOL sendToWellKnownLu,
    /* in */      IMA_BYTE selectReport,
    /* out */     IMA_BYTE *pOutputBuffer,
    /* in, out */ IMA_UINT *pOutputBufferLength,
    /* out */     IMA_BYTE *pSenseBuffer,
    /* in, out */ IMA_UINT *pSenseBufferLength
);

Parameters

deviceOid

The object ID of the target or logical unit (LU) whose SCSI REPORT LUNS data is retrieved. If the object ID identifies a target, then the REPORT LUNS command will be sent to either LUN 0, or to the well known REPORT LUNS LUN of the target, depending upon the value of the wellKnownLun argument.

sendToWellKnownLu

If the oid argument specifies a target, then the sendToWellKnownLu argument indicates whether the REPORT LUNS command is sent to the well known REPORT LUNS LU, or to the LU at LUN 0.

  • If the oid argument specifies a target, and the sendToWellKnownLu argument has the value, IMA_TRUE, then the REPORT LUNS command will be sent to the well known REPORT LUNS LU of the target.

  • If the oid argument specifies a target and the sendToWellKnownLu argument has the value, IMA_FALSE, then the REPORT LUNS command will be sent to LUN 0 of the target.

  • If the oid argument specifies an LU, then the REPORT LUNS command is sent to the specified LU, and the value of the sendToWellKnownLu argument is ignored.

See section 9 of ANSI INCITS 408-2005 for more information regarding well known LUs.

selectReport

The select report value as defined for the REPORT LUNS command. See the T10 document ANSI INCITS 408-2005 or your device's SCSI interface documentation for more information on the values this field can contain.

pOutputBuffer

A pointer to the memory location, that, on successful completion contains the data returned by the logical unit.

pOutputBufferLength

A pointer to the output buffer length. On entry to the function, this argument points to a variable containing the maximum length, in bytes, of the pOutputBuffer argument. If returned successfully, the pOutputBufferLength argument contains the number of bytes that were actually returned in the pOutputBuffer argument. In case of failure, this value remains the same as on entry.

pSenseBuffer

A pointer to a memory location, that, if the REPORT LUNS command fails with a CHECK CONDITION status, contains the sense data received from the logical unit. If the pSenseBuffer argument is NULL, then no sense data is transferred to the client if the REPORT LUNS command fails with a CHECK CONDITION status.

pSenseBufferLength

A pointer to the sense buffer length. On entry to the function, this argument points to a variable containing the maximum length, in bytes, of the pSenseBuffer argument. If the API returns the value, IMA_ERROR_SCSI_STATUS_CHECK_CONDITION, then, on exit this argument contains the number of sense data bytes returned in the pSenseBuffer argument. If the pSenseBuffer argument is NULL, then the value of the pSenseBufferLength argument is 0. If any other value is returned by the API, then, on exit this value remains the same as on entry.

Description

The IMA_LuReportLuns() API gets the SCSI REPORT LUNS data for the specified logical unit.

Return Values

IMA_ERROR_NOT_SUPPORTED

Returned if the deviceOid argument specifies a target, and the sendToWellKnownLu argument has the value, IMA_TRUE, and sending the REPORT LUNS command to the well known REPORT LUNS LUN is not supported.

IMA_ERROR_INVALID_PARAMETER
  • Returned if the pOutputBuffer argument is NULL, or specifies a memory area to which the pOutputBufferLength argument bytes cannot be written.

  • Returned if the pOutputBufferLength argument is NULL, or specifies a memory which cannot be written.

  • Returned if the pOutputBufferLength argument is 0.

  • Returned if the pSenseBufferLength argument is greater than zero and the pSenseBuffer argument specifies a memory area to which the pSenseBufferLength argument bytes cannot be written.

  • Returned if the sendToWellKnownLu argument has a value other than the value, IMA_TRUE and the value, IMA_FALSE.

IMA_ERROR_INVALID_OBJECT_TYPE

Returned if the deviceOid argument does not specify a valid object type.

IMA_ERROR_INCORRECT_OBJECT_TYPE

Returned if the deviceOid argument does not specify an LU object.

IMA_ERROR_OBJECT_NOT_FOUND

Returned if the deviceOid argumentdoes not specify an LU known to the system.

IMA_ERROR_SCSI_STATUS_CHECK_CONDITION

Returned if the SCSI REPORT LUNS command fails with a CHECK CONDITION status. If this value is returned, then if the pSenseBuffer argument is not NULL, it contains the sense data returned by the logical unit.

IMA_ERROR_TARGET_TIMEOUT

Returned if the target associated with the specified LU failed to respond to an iSCSI login request from an initiator.

IMA_ERROR_LOGIN_REJECTED

Returned if the target associated with the specified LU rejected an iSCSI login request from an initiator.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/library/storage/snia-ima
Interface Stability
Volatile
MT-Level
Safe

See Also

libima(3LIB), attributes(7), IMA_LuInquiry(3IMA), IMA_LuReadCapacity(3IMA)