VirtualBox

Ignore:
Timestamp:
Apr 14, 2023 3:17:44 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156854
Message:

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/IScsiDxe/IScsiProto.h

    r85718 r99404  
    2525    )
    2626
    27 #define ISCSI_WELL_KNOWN_PORT                   3260
    28 #define ISCSI_MAX_CONNS_PER_SESSION             1
    29 
    30 #define DEFAULT_MAX_RECV_DATA_SEG_LEN           8192
    31 #define MAX_RECV_DATA_SEG_LEN_IN_FFP            65536
    32 #define DEFAULT_MAX_OUTSTANDING_R2T             1
    33 
    34 #define ISCSI_VERSION_MAX                       0x00
    35 #define ISCSI_VERSION_MIN                       0x00
    36 
    37 #define ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME       EFI_TIMER_PERIOD_SECONDS(20)
    38 #define ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME    EFI_TIMER_PERIOD_SECONDS(20)
    39 
    40 #define ISCSI_REDIRECT_ADDR_START_DELIMITER     '['
    41 #define ISCSI_REDIRECT_ADDR_END_DELIMITER       ']'
     27#define ISCSI_WELL_KNOWN_PORT        3260
     28#define ISCSI_MAX_CONNS_PER_SESSION  1
     29
     30#define DEFAULT_MAX_RECV_DATA_SEG_LEN  8192
     31#define MAX_RECV_DATA_SEG_LEN_IN_FFP   65536
     32#define DEFAULT_MAX_OUTSTANDING_R2T    1
     33
     34#define ISCSI_VERSION_MAX  0x00
     35#define ISCSI_VERSION_MIN  0x00
     36
     37#define ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME     EFI_TIMER_PERIOD_SECONDS(20)
     38#define ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME  EFI_TIMER_PERIOD_SECONDS(20)
     39
     40#define ISCSI_REDIRECT_ADDR_START_DELIMITER  '['
     41#define ISCSI_REDIRECT_ADDR_END_DELIMITER    ']'
    4242
    4343#define ISCSI_KEY_AUTH_METHOD                   "AuthMethod"
     
    6464#define ISCSI_KEY_MAX_RECV_DATA_SEGMENT_LENGTH  "MaxRecvDataSegmentLength"
    6565
    66 #define ISCSI_KEY_VALUE_NONE                    "None"
     66#define ISCSI_KEY_VALUE_NONE  "None"
    6767
    6868///
     
    7070///
    7171
    72 #define CONN_STATE_FREE                         0
    73 #define CONN_STATE_XPT_WAIT                     1
    74 #define CONN_STATE_IN_LOGIN                     2
    75 #define CONN_STATE_LOGGED_IN                    3
    76 #define CONN_STATE_IN_LOGOUT                    4
    77 #define CONN_STATE_LOGOUT_REQUESTED             5
    78 #define CONN_STATE_CLEANUP_WAIT                 6
    79 #define CONN_STATE_IN_CLEANUP                   7
     72#define CONN_STATE_FREE              0
     73#define CONN_STATE_XPT_WAIT          1
     74#define CONN_STATE_IN_LOGIN          2
     75#define CONN_STATE_LOGGED_IN         3
     76#define CONN_STATE_IN_LOGOUT         4
     77#define CONN_STATE_LOGOUT_REQUESTED  5
     78#define CONN_STATE_CLEANUP_WAIT      6
     79#define CONN_STATE_IN_CLEANUP        7
    8080
    8181///
    8282/// session state for initiator
    8383///
    84 #define SESSION_STATE_FREE                      0
    85 #define SESSION_STATE_LOGGED_IN                 1
    86 #define SESSION_STATE_FAILED                    2
    87 
    88 #define ISCSI_RESERVED_TAG                      0xffffffff
    89 
    90 #define ISCSI_REQ_IMMEDIATE                     0x40
    91 #define ISCSI_OPCODE_MASK                       0x3F
     84#define SESSION_STATE_FREE       0
     85#define SESSION_STATE_LOGGED_IN  1
     86#define SESSION_STATE_FAILED     2
     87
     88#define ISCSI_RESERVED_TAG  0xffffffff
     89
     90#define ISCSI_REQ_IMMEDIATE  0x40
     91#define ISCSI_OPCODE_MASK    0x3F
    9292
    9393#define ISCSI_SET_OPCODE(PduHdr, Op, Flgs)  ((((ISCSI_BASIC_HEADER *) (PduHdr))->OpCode) = ((Op) | (Flgs)))
     
    102102#define ISCSI_GET_NEXT_STAGE(PduHdr)        ((UINT8) (((PduHdr)->Flags) & 0x3))
    103103
    104 #define ISCSI_GET_PAD_LEN(DataLen)          ((~(DataLen) + 1) & 0x3)
    105 #define ISCSI_ROUNDUP(DataLen)              (((DataLen) + 3) &~(0x3))
     104#define ISCSI_GET_PAD_LEN(DataLen)  ((~(DataLen) + 1) & 0x3)
     105#define ISCSI_ROUNDUP(DataLen)      (((DataLen) + 3) &~(0x3))
    106106
    107107#define HTON24(Dst, Src) \
     
    112112  } while (0);
    113113
    114 #define NTOH24(src)                         (((src)[0] << 16) | ((src)[1] << 8) | ((src)[2]))
     114#define NTOH24(src)  (((src)[0] << 16) | ((src)[1] << 8) | ((src)[2]))
    115115
    116116#define ISCSI_GET_DATASEG_LEN(PduHdr)       NTOH24 (((ISCSI_BASIC_HEADER *) (PduHdr))->DataSegmentLength)
     
    136136// Target opcodes.
    137137//
    138 #define ISCSI_OPCODE_NOP_IN       0x20
    139 #define ISCSI_OPCODE_SCSI_RSP     0x21
    140 #define ISCSI_OPCODE_SCSI_TMF_RSP 0x22
    141 #define ISCSI_OPCODE_LOGIN_RSP    0x23
    142 #define ISCSI_OPCODE_TEXT_RSP     0x24
    143 #define ISCSI_OPCODE_SCSI_DATA_IN 0x25
    144 #define ISCSI_OPCODE_LOGOUT_RSP   0x26
    145 #define ISCSI_OPCODE_R2T          0x31
    146 #define ISCSI_OPCODE_ASYNC_MSG    0x32
    147 #define ISCSI_OPCODE_VENDOR_T0    0x3c
    148 #define ISCSI_OPCODE_VENDOR_T1    0x3d
    149 #define ISCSI_OPCODE_VENDOR_T2    0x3e
    150 #define ISCSI_OPCODE_REJECT       0x3f
    151 
    152 #define ISCSI_BHS_FLAG_FINAL      0x80
     138#define ISCSI_OPCODE_NOP_IN        0x20
     139#define ISCSI_OPCODE_SCSI_RSP      0x21
     140#define ISCSI_OPCODE_SCSI_TMF_RSP  0x22
     141#define ISCSI_OPCODE_LOGIN_RSP     0x23
     142#define ISCSI_OPCODE_TEXT_RSP      0x24
     143#define ISCSI_OPCODE_SCSI_DATA_IN  0x25
     144#define ISCSI_OPCODE_LOGOUT_RSP    0x26
     145#define ISCSI_OPCODE_R2T           0x31
     146#define ISCSI_OPCODE_ASYNC_MSG     0x32
     147#define ISCSI_OPCODE_VENDOR_T0     0x3c
     148#define ISCSI_OPCODE_VENDOR_T1     0x3d
     149#define ISCSI_OPCODE_VENDOR_T2     0x3e
     150#define ISCSI_OPCODE_REJECT        0x3f
     151
     152#define ISCSI_BHS_FLAG_FINAL  0x80
    153153
    154154//
    155155// Defined AHS types, others are reserved.
    156156//
    157 #define ISCSI_AHS_TYPE_EXT_CDB              0x1
    158 #define ISCSI_AHS_TYPE_BI_EXP_READ_DATA_LEN 0x2
    159 
    160 #define SCSI_CMD_PDU_FLAG_READ        0x40
    161 #define SCSI_CMD_PDU_FLAG_WRITE       0x20
     157#define ISCSI_AHS_TYPE_EXT_CDB               0x1
     158#define ISCSI_AHS_TYPE_BI_EXP_READ_DATA_LEN  0x2
     159
     160#define SCSI_CMD_PDU_FLAG_READ   0x40
     161#define SCSI_CMD_PDU_FLAG_WRITE  0x20
    162162
    163163#define ISCSI_CMD_PDU_TASK_ATTR_MASK  0x07
     
    175175// Flag bit definitions in SCSI response.
    176176//
    177 #define SCSI_RSP_PDU_FLAG_BI_READ_OVERFLOW  0x10
    178 #define SCSI_RSP_PDU_FLAG_BI_READ_UNDERFLOW 0x08
    179 #define SCSI_RSP_PDU_FLAG_OVERFLOW          0x04
    180 #define SCSI_RSP_PDU_FLAG_UNDERFLOW         0x02
     177#define SCSI_RSP_PDU_FLAG_BI_READ_OVERFLOW   0x10
     178#define SCSI_RSP_PDU_FLAG_BI_READ_UNDERFLOW  0x08
     179#define SCSI_RSP_PDU_FLAG_OVERFLOW           0x04
     180#define SCSI_RSP_PDU_FLAG_UNDERFLOW          0x02
    181181
    182182//
     
    186186#define ISCSI_SERVICE_RSP_TARGET_FAILURE              0x01
    187187
    188 #define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_COMPLETE           0
    189 #define ISCSI_TMF_RSP_PDU_RSP_TASK_NOT_EXIST              1
    190 #define ISCSI_TMF_RSP_PDU_RSP_LUN_NOT_EXIST               2
    191 #define ISCSI_TMF_RSP_PDU_RSP_TASK_STILL_ALLEGIANT        3
    192 #define ISCSI_TMF_RSP_PDU_RSP_TASK_REASSGIN_NOT_SUPPORTED 4
    193 #define ISCSI_TMF_RSP_PDU_RSP_NOT_SUPPORTED               5
    194 #define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_AHTH_FAILED        6
    195 #define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_REJECTED           255
     188#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_COMPLETE            0
     189#define ISCSI_TMF_RSP_PDU_RSP_TASK_NOT_EXIST               1
     190#define ISCSI_TMF_RSP_PDU_RSP_LUN_NOT_EXIST                2
     191#define ISCSI_TMF_RSP_PDU_RSP_TASK_STILL_ALLEGIANT         3
     192#define ISCSI_TMF_RSP_PDU_RSP_TASK_REASSGIN_NOT_SUPPORTED  4
     193#define ISCSI_TMF_RSP_PDU_RSP_NOT_SUPPORTED                5
     194#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_AHTH_FAILED         6
     195#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_REJECTED            255
    196196
    197197#define SCSI_DATA_IN_PDU_FLAG_ACKKNOWLEDGE  0x40
     
    200200#define SCSI_DATA_IN_PDU_FLAG_STATUS_VALID  0x01
    201201
    202 #define ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT  0x80
    203 #define ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE 0x40
    204 
    205 #define ISCSI_LOGIN_RSP_PDU_FLAG_TRANSIT    ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT
    206 #define ISCSI_LOGIN_RSP_PDU_FLAG_CONTINUE   ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE
     202#define ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT   0x80
     203#define ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE  0x40
     204
     205#define ISCSI_LOGIN_RSP_PDU_FLAG_TRANSIT   ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT
     206#define ISCSI_LOGIN_RSP_PDU_FLAG_CONTINUE  ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE
    207207
    208208#define ISCSI_LOGIN_STATUS_SUCCESS          0
     
    225225#define ISCSI_SNACK_REQUEST_TYPE_RDATA        3
    226226
    227 #define ISCSI_SECURITY_NEGOTIATION          0
    228 #define ISCSI_LOGIN_OPERATIONAL_NEGOTIATION 1
    229 #define ISCSI_FULL_FEATURE_PHASE            3
    230 
    231 typedef struct _ISCSI_SESSION               ISCSI_SESSION;
    232 typedef struct _ISCSI_CONNECTION            ISCSI_CONNECTION;
     227#define ISCSI_SECURITY_NEGOTIATION           0
     228#define ISCSI_LOGIN_OPERATIONAL_NEGOTIATION  1
     229#define ISCSI_FULL_FEATURE_PHASE             3
     230
     231typedef struct _ISCSI_SESSION     ISCSI_SESSION;
     232typedef struct _ISCSI_CONNECTION  ISCSI_CONNECTION;
    233233
    234234typedef enum {
     
    242242///
    243243typedef struct _ISCSI_BASIC_HEADER {
    244   UINT8   OpCode;
    245   UINT8   Flags;
    246   UINT16  OpCodeSpecific1;
    247   UINT8   TotalAHSLength;
    248   UINT8   DataSegmentLength[3];
    249   UINT8   Lun[8];
    250   UINT32  InitiatorTaskTag;
    251   UINT32  OpCodeSpecific2[7];
     244  UINT8     OpCode;
     245  UINT8     Flags;
     246  UINT16    OpCodeSpecific1;
     247  UINT8     TotalAHSLength;
     248  UINT8     DataSegmentLength[3];
     249  UINT8     Lun[8];
     250  UINT32    InitiatorTaskTag;
     251  UINT32    OpCodeSpecific2[7];
    252252} ISCSI_BASIC_HEADER;
    253253
    254254typedef struct _ISCSI_ADDTIONAL_HEADER {
    255   UINT16  Length;
    256   UINT8   Type;
    257   UINT8   TypeSpecific[1];
     255  UINT16    Length;
     256  UINT8     Type;
     257  UINT8     TypeSpecific[1];
    258258} ISCSI_ADDITIONAL_HEADER;
    259259
    260260typedef struct _ISCSI_BI_EXP_READ_DATA_LEN_AHS {
    261   UINT16  Length;
    262   UINT8   Type;
    263   UINT8   Reserved;
    264   UINT32  ExpReadDataLength;
     261  UINT16    Length;
     262  UINT8     Type;
     263  UINT8     Reserved;
     264  UINT32    ExpReadDataLength;
    265265} ISCSI_BI_EXP_READ_DATA_LEN_AHS;
    266266
     
    269269///
    270270typedef struct _SCSI_COMMAND {
    271   UINT8   OpCode;
    272   UINT8   Flags;
    273   UINT16  Reserved;
    274   UINT8   TotalAHSLength;
    275   UINT8   DataSegmentLength[3];
    276   UINT8   Lun[8];
    277   UINT32  InitiatorTaskTag;
    278   UINT32  ExpDataXferLength;
    279   UINT32  CmdSN;
    280   UINT32  ExpStatSN;
    281   UINT8   Cdb[16];
     271  UINT8     OpCode;
     272  UINT8     Flags;
     273  UINT16    Reserved;
     274  UINT8     TotalAHSLength;
     275  UINT8     DataSegmentLength[3];
     276  UINT8     Lun[8];
     277  UINT32    InitiatorTaskTag;
     278  UINT32    ExpDataXferLength;
     279  UINT32    CmdSN;
     280  UINT32    ExpStatSN;
     281  UINT8     Cdb[16];
    282282} SCSI_COMMAND;
    283283
     
    286286///
    287287typedef struct _SCSI_RESPONSE {
    288   UINT8   OpCode;
    289   UINT8   Flags;
    290   UINT8   Response;
    291   UINT8   Status;
    292   UINT8   TotalAHSLength;
    293   UINT8   DataSegmentLength[3];
    294   UINT8   Reserved[8];
    295   UINT32  InitiatorTaskTag;
    296   UINT32  SNACKTag;
    297   UINT32  StatSN;
    298   UINT32  ExpCmdSN;
    299   UINT32  MaxCmdSN;
    300   UINT32  ExpDataSN;
    301   UINT32  BiReadResidualCount;
    302   UINT32  ResidualCount;
     288  UINT8     OpCode;
     289  UINT8     Flags;
     290  UINT8     Response;
     291  UINT8     Status;
     292  UINT8     TotalAHSLength;
     293  UINT8     DataSegmentLength[3];
     294  UINT8     Reserved[8];
     295  UINT32    InitiatorTaskTag;
     296  UINT32    SNACKTag;
     297  UINT32    StatSN;
     298  UINT32    ExpCmdSN;
     299  UINT32    MaxCmdSN;
     300  UINT32    ExpDataSN;
     301  UINT32    BiReadResidualCount;
     302  UINT32    ResidualCount;
    303303} SCSI_RESPONSE;
    304304
    305305typedef struct _ISCSI_SENSE_DATA {
    306   UINT16  Length;
    307   UINT8   Data[2];
     306  UINT16    Length;
     307  UINT8     Data[2];
    308308} ISCSI_SENSE_DATA;
    309309
     
    312312///
    313313typedef struct _ISCSI_TMF_REQUEST {
    314   UINT8   OpCode;
    315   UINT8   Fuction;
    316   UINT16  Reserved1;
    317   UINT8   TotalAHSLength;
    318   UINT8   DataSegmentLength[3];
    319   UINT8   Lun[8];
    320   UINT32  InitiatorTaskTag;
    321   UINT32  ReferencedTaskTag;
    322   UINT32  CmdSN;
    323   UINT32  ExpStatSN;
    324   UINT32  RefCmdSN;
    325   UINT32  ExpDataSN;
    326   UINT32  Reserved2[2];
     314  UINT8     OpCode;
     315  UINT8     Fuction;
     316  UINT16    Reserved1;
     317  UINT8     TotalAHSLength;
     318  UINT8     DataSegmentLength[3];
     319  UINT8     Lun[8];
     320  UINT32    InitiatorTaskTag;
     321  UINT32    ReferencedTaskTag;
     322  UINT32    CmdSN;
     323  UINT32    ExpStatSN;
     324  UINT32    RefCmdSN;
     325  UINT32    ExpDataSN;
     326  UINT32    Reserved2[2];
    327327} ISCSI_TMF_REQUEST;
    328328
     
    331331///
    332332typedef struct _ISCSI_TMF_RESPONSE {
    333   UINT8   OpCode;
    334   UINT8   Reserved1;
    335   UINT8   Response;
    336   UINT8   Reserved2;
    337   UINT8   TotalAHSLength;
    338   UINT8   DataSegmentLength[3];
    339   UINT32  Reserver3[2];
    340   UINT32  InitiatorTaskTag;
    341   UINT32  Reserved4;
    342   UINT32  StatSN;
    343   UINT32  ExpCmdSN;
    344   UINT32  MaxCmdSN;
    345   UINT32  Reserved[3];
     333  UINT8     OpCode;
     334  UINT8     Reserved1;
     335  UINT8     Response;
     336  UINT8     Reserved2;
     337  UINT8     TotalAHSLength;
     338  UINT8     DataSegmentLength[3];
     339  UINT32    Reserver3[2];
     340  UINT32    InitiatorTaskTag;
     341  UINT32    Reserved4;
     342  UINT32    StatSN;
     343  UINT32    ExpCmdSN;
     344  UINT32    MaxCmdSN;
     345  UINT32    Reserved[3];
    346346} ISCSI_TMF_RESPONSE;
    347347
     
    350350///
    351351typedef struct _ISCSI_SCSI_DATA_OUT {
    352   UINT8   OpCode;
    353   UINT8   Reserved1[3];
    354   UINT8   TotalAHSLength;
    355   UINT8   DataSegmentLength[3];
    356   UINT8   Lun[8];
    357   UINT32  InitiatorTaskTag;
    358   UINT32  TargetTransferTag;
    359   UINT32  Reserved2;
    360   UINT32  ExpStatSN;
    361   UINT32  Reserved3;
    362   UINT32  DataSN;
    363   UINT32  BufferOffset;
    364   UINT32  Reserved4;
     352  UINT8     OpCode;
     353  UINT8     Reserved1[3];
     354  UINT8     TotalAHSLength;
     355  UINT8     DataSegmentLength[3];
     356  UINT8     Lun[8];
     357  UINT32    InitiatorTaskTag;
     358  UINT32    TargetTransferTag;
     359  UINT32    Reserved2;
     360  UINT32    ExpStatSN;
     361  UINT32    Reserved3;
     362  UINT32    DataSN;
     363  UINT32    BufferOffset;
     364  UINT32    Reserved4;
    365365} ISCSI_SCSI_DATA_OUT;
    366366
     
    369369///
    370370typedef struct _ISCSI_SCSI_DATA_IN {
    371   UINT8   OpCode;
    372   UINT8   Flags;
    373   UINT8   Reserved1;
    374   UINT8   Status;
    375   UINT8   TotalAHSLength;
    376   UINT8   DataSegmentLength[3];
    377   UINT8   Lun[8];
    378   UINT32  InitiatorTaskTag;
    379   UINT32  TargetTransferTag;
    380   UINT32  StatSN;
    381   UINT32  ExpCmdSN;
    382   UINT32  MaxCmdSN;
    383   UINT32  DataSN;
    384   UINT32  BufferOffset;
    385   UINT32  ResidualCount;
     371  UINT8     OpCode;
     372  UINT8     Flags;
     373  UINT8     Reserved1;
     374  UINT8     Status;
     375  UINT8     TotalAHSLength;
     376  UINT8     DataSegmentLength[3];
     377  UINT8     Lun[8];
     378  UINT32    InitiatorTaskTag;
     379  UINT32    TargetTransferTag;
     380  UINT32    StatSN;
     381  UINT32    ExpCmdSN;
     382  UINT32    MaxCmdSN;
     383  UINT32    DataSN;
     384  UINT32    BufferOffset;
     385  UINT32    ResidualCount;
    386386} ISCSI_SCSI_DATA_IN;
    387387
     
    390390///
    391391typedef struct _ISCSI_READY_TO_TRANSFER {
    392   UINT8   OpCode;
    393   UINT8   Reserved1[3];
    394   UINT8   TotalAHSLength;
    395   UINT8   DataSegmentLength[3];
    396   UINT8   Lun[8];
    397   UINT32  InitiatorTaskTag;
    398   UINT32  TargetTransferTag;
    399   UINT32  StatSN;
    400   UINT32  ExpCmdSN;
    401   UINT32  MaxCmdSN;
    402   UINT32  R2TSeqNum;
    403   UINT32  BufferOffset;
    404   UINT32  DesiredDataTransferLength;
     392  UINT8     OpCode;
     393  UINT8     Reserved1[3];
     394  UINT8     TotalAHSLength;
     395  UINT8     DataSegmentLength[3];
     396  UINT8     Lun[8];
     397  UINT32    InitiatorTaskTag;
     398  UINT32    TargetTransferTag;
     399  UINT32    StatSN;
     400  UINT32    ExpCmdSN;
     401  UINT32    MaxCmdSN;
     402  UINT32    R2TSeqNum;
     403  UINT32    BufferOffset;
     404  UINT32    DesiredDataTransferLength;
    405405} ISCSI_READY_TO_TRANSFER;
    406406
    407407typedef struct _ISCSI_ASYNC_MESSAGE {
    408   UINT8   OpCode;
    409   UINT8   Reserved1[8];
    410   UINT8   TotalAHSLength;
    411   UINT8   DataSegmentLength[3];
    412   UINT8   Lun[8];
    413   UINT32  InitiatorTaskTag;
    414   UINT32  Reserved2;
    415   UINT32  StatSN;
    416   UINT32  ExpCmdSN;
    417   UINT32  MaxCmdSN;
    418   UINT8   AsyncEvent;
    419   UINT8   AsyncVCode;
    420   UINT16  Parameter1;
    421   UINT16  Parameter2;
    422   UINT16  Parameter3;
    423   UINT32  Reserved3;
     408  UINT8     OpCode;
     409  UINT8     Reserved1[8];
     410  UINT8     TotalAHSLength;
     411  UINT8     DataSegmentLength[3];
     412  UINT8     Lun[8];
     413  UINT32    InitiatorTaskTag;
     414  UINT32    Reserved2;
     415  UINT32    StatSN;
     416  UINT32    ExpCmdSN;
     417  UINT32    MaxCmdSN;
     418  UINT8     AsyncEvent;
     419  UINT8     AsyncVCode;
     420  UINT16    Parameter1;
     421  UINT16    Parameter2;
     422  UINT16    Parameter3;
     423  UINT32    Reserved3;
    424424} ISCSI_ASYNC_MESSAGE;
    425425
     
    428428///
    429429typedef struct _ISCSI_LOGIN_REQUEST {
    430   UINT8   OpCode;
    431   UINT8   Flags;
    432   UINT8   VersionMax;
    433   UINT8   VersionMin;
    434   UINT8   TotalAHSLength;
    435   UINT8   DataSegmentLength[3];
    436   UINT8   Isid[6];
    437   UINT16  Tsih;
    438   UINT32  InitiatorTaskTag;
    439   UINT16  Cid;
    440   UINT16  Reserved1;
    441   UINT32  CmdSN;
    442   UINT32  ExpStatSN;
    443   UINT32  Reserved2[4];
     430  UINT8     OpCode;
     431  UINT8     Flags;
     432  UINT8     VersionMax;
     433  UINT8     VersionMin;
     434  UINT8     TotalAHSLength;
     435  UINT8     DataSegmentLength[3];
     436  UINT8     Isid[6];
     437  UINT16    Tsih;
     438  UINT32    InitiatorTaskTag;
     439  UINT16    Cid;
     440  UINT16    Reserved1;
     441  UINT32    CmdSN;
     442  UINT32    ExpStatSN;
     443  UINT32    Reserved2[4];
    444444} ISCSI_LOGIN_REQUEST;
    445445
     
    448448///
    449449typedef struct _ISCSI_LOGIN_RESPONSE {
    450   UINT8   OpCode;
    451   UINT8   Flags;
    452   UINT8   VersionMax;
    453   UINT8   VersionActive;
    454   UINT8   TotalAHSLength;
    455   UINT8   DataSegmentLength[3];
    456   UINT8   Isid[6];
    457   UINT16  Tsih;
    458   UINT32  InitiatorTaskTag;
    459   UINT32  Reserved1;
    460   UINT32  StatSN;
    461   UINT32  ExpCmdSN;
    462   UINT32  MaxCmdSN;
    463   UINT8   StatusClass;
    464   UINT8   StatusDetail;
    465   UINT8   Reserved2[10];
     450  UINT8     OpCode;
     451  UINT8     Flags;
     452  UINT8     VersionMax;
     453  UINT8     VersionActive;
     454  UINT8     TotalAHSLength;
     455  UINT8     DataSegmentLength[3];
     456  UINT8     Isid[6];
     457  UINT16    Tsih;
     458  UINT32    InitiatorTaskTag;
     459  UINT32    Reserved1;
     460  UINT32    StatSN;
     461  UINT32    ExpCmdSN;
     462  UINT32    MaxCmdSN;
     463  UINT8     StatusClass;
     464  UINT8     StatusDetail;
     465  UINT8     Reserved2[10];
    466466} ISCSI_LOGIN_RESPONSE;
    467467
     
    470470///
    471471typedef struct _ISCSI_LOGOUT_REQUEST {
    472   UINT8   OpCode;
    473   UINT8   ReasonCode;
    474   UINT16  Reserved1;
    475   UINT8   TotalAHSLength;
    476   UINT8   DataSegmentLength[3];
    477   UINT32  Reserved2[2];
    478   UINT32  InitiatorTaskTag;
    479   UINT16  Cid;
    480   UINT16  Reserved3;
    481   UINT32  CmdSN;
    482   UINT32  ExpStatSN;
    483   UINT32  Reserved4[4];
     472  UINT8     OpCode;
     473  UINT8     ReasonCode;
     474  UINT16    Reserved1;
     475  UINT8     TotalAHSLength;
     476  UINT8     DataSegmentLength[3];
     477  UINT32    Reserved2[2];
     478  UINT32    InitiatorTaskTag;
     479  UINT16    Cid;
     480  UINT16    Reserved3;
     481  UINT32    CmdSN;
     482  UINT32    ExpStatSN;
     483  UINT32    Reserved4[4];
    484484} ISCSI_LOGOUT_REQUEST;
    485485
     
    488488///
    489489typedef struct _ISCSI_LOGOUT_RESPONSE {
    490   UINT8   OpCode;
    491   UINT8   Reserved1;
    492   UINT8   Response;
    493   UINT8   Reserved2;
    494   UINT8   TotalAHSLength;
    495   UINT8   DataSegmentLength[3];
    496   UINT32  Reserved3[2];
    497   UINT32  InitiatorTaskTag;
    498   UINT32  Reserved4;
    499   UINT32  StatSN;
    500   UINT32  ExpCmdSN;
    501   UINT32  MaxCmdSN;
    502   UINT32  Reserved5;
    503   UINT16  Time2Wait;
    504   UINT16  Time2Retain;
    505   UINT32  Reserved6;
     490  UINT8     OpCode;
     491  UINT8     Reserved1;
     492  UINT8     Response;
     493  UINT8     Reserved2;
     494  UINT8     TotalAHSLength;
     495  UINT8     DataSegmentLength[3];
     496  UINT32    Reserved3[2];
     497  UINT32    InitiatorTaskTag;
     498  UINT32    Reserved4;
     499  UINT32    StatSN;
     500  UINT32    ExpCmdSN;
     501  UINT32    MaxCmdSN;
     502  UINT32    Reserved5;
     503  UINT16    Time2Wait;
     504  UINT16    Time2Retain;
     505  UINT32    Reserved6;
    506506} ISCSI_LOGOUT_RESPONSE;
    507507
     
    510510///
    511511typedef struct _ISCSI_SNACK_REQUEST {
    512   UINT8   OpCode;
    513   UINT8   Type;
    514   UINT16  Reserved1;
    515   UINT8   TotalAHSLength;
    516   UINT8   DataSegmentLength[3];
    517   UINT8   Lun[8];
    518   UINT32  InitiatorTaskTag;
    519   UINT32  TargetTransferTag;
    520   UINT32  Reserved2;
    521   UINT32  ExpStatSN;
    522   UINT32  Reserved[2];
    523   UINT32  BegRun;
    524   UINT32  RunLength;
     512  UINT8     OpCode;
     513  UINT8     Type;
     514  UINT16    Reserved1;
     515  UINT8     TotalAHSLength;
     516  UINT8     DataSegmentLength[3];
     517  UINT8     Lun[8];
     518  UINT32    InitiatorTaskTag;
     519  UINT32    TargetTransferTag;
     520  UINT32    Reserved2;
     521  UINT32    ExpStatSN;
     522  UINT32    Reserved[2];
     523  UINT32    BegRun;
     524  UINT32    RunLength;
    525525} ISCSI_SNACK_REQUEST;
    526526
     
    529529///
    530530typedef struct _ISCSI_REJECT {
    531   UINT8   OpCode;
    532   UINT8   Reserved1;
    533   UINT8   Reason;
    534   UINT8   Reserved2;
    535   UINT8   TotalAHSLength;
    536   UINT8   DataSegmentLength[3];
    537   UINT32  Reserved3[2];
    538   UINT32  InitiatorTaskTag;
    539   UINT32  Reserved4;
    540   UINT32  StatSN;
    541   UINT32  ExpCmdSN;
    542   UINT32  MaxCmdSN;
    543   UINT32  DataSN;
    544   UINT32  Reserved5[2];
     531  UINT8     OpCode;
     532  UINT8     Reserved1;
     533  UINT8     Reason;
     534  UINT8     Reserved2;
     535  UINT8     TotalAHSLength;
     536  UINT8     DataSegmentLength[3];
     537  UINT32    Reserved3[2];
     538  UINT32    InitiatorTaskTag;
     539  UINT32    Reserved4;
     540  UINT32    StatSN;
     541  UINT32    ExpCmdSN;
     542  UINT32    MaxCmdSN;
     543  UINT32    DataSN;
     544  UINT32    Reserved5[2];
    545545} ISCSI_REJECT;
    546546
     
    549549///
    550550typedef struct _ISCSI_NOP_OUT {
    551   UINT8   OpCode;
    552   UINT8   Reserved1[3];
    553   UINT8   TotalAHSLength;
    554   UINT8   DataSegmentLength[3];
    555   UINT8   Lun[8];
    556   UINT32  InitiatorTaskTag;
    557   UINT32  TargetTransferTag;
    558   UINT32  CmdSN;
    559   UINT32  ExpStatSN;
    560   UINT32  Reserved2[4];
     551  UINT8     OpCode;
     552  UINT8     Reserved1[3];
     553  UINT8     TotalAHSLength;
     554  UINT8     DataSegmentLength[3];
     555  UINT8     Lun[8];
     556  UINT32    InitiatorTaskTag;
     557  UINT32    TargetTransferTag;
     558  UINT32    CmdSN;
     559  UINT32    ExpStatSN;
     560  UINT32    Reserved2[4];
    561561} ISCSI_NOP_OUT;
    562562
     
    565565///
    566566typedef struct _ISCSI_NOP_IN {
    567   UINT8   OpCode;
    568   UINT8   Reserved1[3];
    569   UINT8   TotalAHSLength;
    570   UINT8   DataSegmentLength[3];
    571   UINT8   Lun[8];
    572   UINT32  InitiatorTaskTag;
    573   UINT32  TargetTransferTag;
    574   UINT32  StatSN;
    575   UINT32  ExpCmdSN;
    576   UINT32  MaxCmdSN;
    577   UINT32  Reserved2[3];
     567  UINT8     OpCode;
     568  UINT8     Reserved1[3];
     569  UINT8     TotalAHSLength;
     570  UINT8     DataSegmentLength[3];
     571  UINT8     Lun[8];
     572  UINT32    InitiatorTaskTag;
     573  UINT32    TargetTransferTag;
     574  UINT32    StatSN;
     575  UINT32    ExpCmdSN;
     576  UINT32    MaxCmdSN;
     577  UINT32    Reserved2[3];
    578578} ISCSI_NOP_IN;
    579579
     
    584584
    585585typedef struct _ISCSI_XFER_CONTEXT {
    586   UINT32  TargetTransferTag;
    587   UINT32  Offset;
    588   UINT32  DesiredLength;
    589   UINT32  ExpDataSN;
     586  UINT32    TargetTransferTag;
     587  UINT32    Offset;
     588  UINT32    DesiredLength;
     589  UINT32    ExpDataSN;
    590590} ISCSI_XFER_CONTEXT;
    591591
    592592typedef struct _ISCSI_IN_BUFFER_CONTEXT {
    593   UINT8   *InData;
    594   UINT32  InDataLen;
     593  UINT8     *InData;
     594  UINT32    InDataLen;
    595595} ISCSI_IN_BUFFER_CONTEXT;
    596596
    597597typedef struct _ISCSI_TCB {
    598   LIST_ENTRY          Link;
    599 
    600   BOOLEAN             SoFarInOrder;
    601   UINT32              ExpDataSN;
    602   BOOLEAN             FbitReceived;
    603   BOOLEAN             StatusXferd;
    604   UINT32              ActiveR2Ts;
    605   UINT32              Response;
    606   CHAR8               *Reason;
    607   UINT32              InitiatorTaskTag;
    608   UINT32              CmdSN;
    609   UINT32              SNACKTag;
    610 
    611   ISCSI_XFER_CONTEXT  XferContext;
    612 
    613   ISCSI_CONNECTION    *Conn;
     598  LIST_ENTRY            Link;
     599
     600  BOOLEAN               SoFarInOrder;
     601  UINT32                ExpDataSN;
     602  BOOLEAN               FbitReceived;
     603  BOOLEAN               StatusXferd;
     604  UINT32                ActiveR2Ts;
     605  UINT32                Response;
     606  CHAR8                 *Reason;
     607  UINT32                InitiatorTaskTag;
     608  UINT32                CmdSN;
     609  UINT32                SNACKTag;
     610
     611  ISCSI_XFER_CONTEXT    XferContext;
     612
     613  ISCSI_CONNECTION      *Conn;
    614614} ISCSI_TCB;
    615615
    616616typedef struct _ISCSI_KEY_VALUE_PAIR {
    617   LIST_ENTRY      List;
    618 
    619   CHAR8           *Key;
    620   CHAR8           *Value;
     617  LIST_ENTRY    List;
     618
     619  CHAR8         *Key;
     620  CHAR8         *Value;
    621621} ISCSI_KEY_VALUE_PAIR;
    622622
     
    658658EFI_STATUS
    659659IScsiConnLogin (
    660   IN OUT ISCSI_CONNECTION    *Conn,
    661   IN     UINT16              Timeout
     660  IN OUT ISCSI_CONNECTION  *Conn,
     661  IN     UINT16            Timeout
    662662  );
    663663
     
    672672ISCSI_CONNECTION *
    673673IScsiCreateConnection (
    674   IN ISCSI_SESSION      *Session
     674  IN ISCSI_SESSION  *Session
    675675  );
    676676
     
    765765EFI_STATUS
    766766IScsiAddKeyValuePair (
    767   IN OUT NET_BUF      *Pdu,
    768   IN CHAR8            *Key,
    769   IN CHAR8            *Value
     767  IN OUT NET_BUF  *Pdu,
     768  IN CHAR8        *Key,
     769  IN CHAR8        *Value
    770770  );
    771771
     
    819819EFI_STATUS
    820820IScsiUpdateTargetAddress (
    821   IN OUT ISCSI_SESSION         *Session,
    822   IN     CHAR8                 *Data,
    823   IN     UINT32                Len
     821  IN OUT ISCSI_SESSION  *Session,
     822  IN     CHAR8          *Data,
     823  IN     UINT32         Len
    824824  );
    825825
     
    833833EFIAPI
    834834IScsiFreeNbufList (
    835   VOID *Arg
     835  VOID  *Arg
    836836  );
    837837
     
    858858EFI_STATUS
    859859IScsiReceivePdu (
    860   IN ISCSI_CONNECTION                      *Conn,
    861   OUT NET_BUF                              **Pdu,
    862   IN ISCSI_IN_BUFFER_CONTEXT               *Context, OPTIONAL
    863   IN BOOLEAN                               HeaderDigest,
    864   IN BOOLEAN                               DataDigest,
    865   IN EFI_EVENT                             TimeoutEvent OPTIONAL
     860  IN ISCSI_CONNECTION         *Conn,
     861  OUT NET_BUF                 **Pdu,
     862  IN ISCSI_IN_BUFFER_CONTEXT  *Context  OPTIONAL,
     863  IN BOOLEAN                  HeaderDigest,
     864  IN BOOLEAN                  DataDigest,
     865  IN EFI_EVENT                TimeoutEvent OPTIONAL
    866866  );
    867867
     
    906906EFI_STATUS
    907907IScsiPadSegment (
    908   IN OUT NET_BUF      *Pdu,
    909   IN     UINT32       Len
     908  IN OUT NET_BUF  *Pdu,
     909  IN     UINT32   Len
    910910  );
    911911
     
    922922LIST_ENTRY *
    923923IScsiBuildKeyValueList (
    924   IN CHAR8  *Data,
    925   IN UINT32 Len
     924  IN CHAR8   *Data,
     925  IN UINT32  Len
    926926  );
    927927
     
    939939CHAR8 *
    940940IScsiGetValueByKeyFromList (
    941   IN OUT LIST_ENTRY     *KeyValueList,
    942   IN     CHAR8          *Key
     941  IN OUT LIST_ENTRY  *KeyValueList,
     942  IN     CHAR8       *Key
    943943  );
    944944
     
    951951VOID
    952952IScsiFreeKeyValueList (
    953   IN LIST_ENTRY      *KeyValueList
     953  IN LIST_ENTRY  *KeyValueList
    954954  );
    955955
     
    966966EFI_STATUS
    967967IScsiNormalizeName (
    968   IN OUT CHAR8      *Name,
    969   IN     UINTN      Len
     968  IN OUT CHAR8  *Name,
     969  IN     UINTN  Len
    970970  );
    971971
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette