blob: f98187126b1e9ce62ac39cbc8324d672c3b96f92 [file] [log] [blame]
/*++
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
ScsiBus.h
Abstract:
Header file for SCSI Bus Driver.
Revision History
++*/
// TODO: fix comment to end with --*/
#ifndef _SCSI_BUS_H
#define _SCSI_BUS_H
#include <IndustryStandard/scsi.h>
//
// 1000 * 1000 * 10
//
#define ONE_SECOND_TIMER 10000000
#define SCSI_IO_DEV_SIGNATURE EFI_SIGNATURE_32 ('s', 'c', 'i', 'o')
typedef struct {
UINT32 Signature;
EFI_HANDLE Handle;
EFI_SCSI_IO_PROTOCOL ScsiIo;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru;
UINT32 Pun;
UINT64 Lun;
UINT8 ScsiDeviceType;
UINT8 ScsiVersion;
BOOLEAN RemovableDevice;
} SCSI_IO_DEV;
#define SCSI_IO_DEV_FROM_THIS(a) CR (a, SCSI_IO_DEV, ScsiIo, SCSI_IO_DEV_SIGNATURE)
//
// Global Variables
//
extern EFI_DRIVER_BINDING_PROTOCOL gScsiBusDriverBinding;
extern EFI_COMPONENT_NAME_PROTOCOL gScsiBusComponentName;
EFI_STATUS
EFIAPI
ScsiGetDeviceType (
IN EFI_SCSI_IO_PROTOCOL *This,
OUT UINT8 *DeviceType
)
/*++
Routine Description:
TODO: Add function description
Arguments:
This - TODO: add argument description
DeviceType - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EFIAPI
ScsiResetBus (
IN EFI_SCSI_IO_PROTOCOL *This
)
/*++
Routine Description:
TODO: Add function description
Arguments:
This - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EFIAPI
ScsiResetDevice (
IN EFI_SCSI_IO_PROTOCOL *This
)
/*++
Routine Description:
TODO: Add function description
Arguments:
This - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
EFIAPI
ScsiExecuteSCSICommand (
IN EFI_SCSI_IO_PROTOCOL *This,
IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *CommandPacket,
IN EFI_EVENT Event
)
/*++
Routine Description:
TODO: Add function description
Arguments:
This - TODO: add argument description
CommandPacket - TODO: add argument description
Event - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
ScsiScanCreateDevice (
EFI_DRIVER_BINDING_PROTOCOL *This,
EFI_HANDLE Controller,
UINT32 Pun,
UINT64 Lun,
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath
)
/*++
Routine Description:
TODO: Add function description
Arguments:
This - TODO: add argument description
Controller - TODO: add argument description
Pun - TODO: add argument description
Lun - TODO: add argument description
ScsiPassThru - TODO: add argument description
ParentDevicePath - TODO: add argument description
Returns:
TODO: add return values
--*/
;
BOOLEAN
DiscoverScsiDevice (
SCSI_IO_DEV *ScsiIoDevice
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ScsiIoDevice - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
GetLunList (
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,
UINT32 Target,
UINT64 **LunArray,
UINTN *NumberOfLuns
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ScsiPassThru - TODO: add argument description
Target - TODO: add argument description
LunArray - TODO: add argument description
NumberOfLuns - TODO: add argument description
Returns:
TODO: add return values
--*/
;
EFI_STATUS
ScsiBusSubmitReportLunCommand (
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,
UINT32 Target,
UINTN AllocationLength,
VOID *Buffer,
EFI_SCSI_SENSE_DATA *SenseData,
UINT8 *SenseDataLength,
UINT8 *HostAdapterStatus,
UINT8 *TargetStatus
)
/*++
Routine Description:
TODO: Add function description
Arguments:
ScsiPassThru - TODO: add argument description
Target - TODO: add argument description
AllocationLength - TODO: add argument description
Buffer - TODO: add argument description
SenseData - TODO: add argument description
SenseDataLength - TODO: add argument description
HostAdapterStatus - TODO: add argument description
TargetStatus - TODO: add argument description
Returns:
TODO: add return values
--*/
;
#endif