summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/hptmv/vdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/hptmv/vdevice.h')
-rw-r--r--sys/contrib/dev/hptmv/vdevice.h280
1 files changed, 0 insertions, 280 deletions
diff --git a/sys/contrib/dev/hptmv/vdevice.h b/sys/contrib/dev/hptmv/vdevice.h
deleted file mode 100644
index a258221..0000000
--- a/sys/contrib/dev/hptmv/vdevice.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright (c) 2003-2004 HighPoint Technologies, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _VDEVICE_H_
-#define _VDEVICE_H_
-
-/***************************************************************************
- * Description: virtual device header
- ***************************************************************************/
-
-typedef struct _VDevice
-{
- UCHAR VDeviceType;
- UCHAR vf_bootmark: 1; /* is boot device? */
- UCHAR vf_bootable: 1; /* has active partition */
- UCHAR vf_online: 1; /* is usable? */
- UCHAR vf_cache_disk: 1; /* Cache enabled */
- UCHAR vf_format_v2: 1; /* old array block */
- UCHAR vf_freed: 1; /* memory free */
- UCHAR reserve1;
- UCHAR bSerialNumber; /* valid if pParent!=0 */
-
- PVDevice pParent; /* parent array */
- PVBus pVBus; /* vbus this device located. Must not be NULL. */
-
- LBA_T VDeviceCapacity; /* number of blocks */
-
- LBA_T LockedLba;
- USHORT LockedSectors;
- USHORT ActiveRequests;
- PCommand LockWaitList;
- void (* HPTLIBAPI QuiesceAction)(_VBUS_ARG void *arg);
- void *QuiesceArg;
- void (* HPTLIBAPI flush_callback)(_VBUS_ARG void *arg);
- void *flush_callback_arg;
-
-
-#if defined(_RAID5N_)
- struct stripe **CacheEntry;
- struct range_lock *range_lock;
-#endif
-
- void (* HPTLIBAPI pfnSendCommand)(_VBUS_ARG PCommand pCmd); /* call this to send a command to a VDevice */
- void (* HPTLIBAPI pfnDeviceFailed)(_VBUS_ARG PVDevice pVDev); /* call this when a VDevice failed */
-
- union {
-#ifdef SUPPORT_ARRAY
- RaidArray array;
-#endif
- Device disk;
- } u;
-
-} VDevice;
-
-#define ARRAY_VDEV_SIZE ((UINT)(ULONG_PTR)&((PVDevice)0)->u+sizeof(RaidArray))
-#define DISK_VDEV_SIZE ((UINT)(ULONG_PTR)&((PVDevice)0)->u+sizeof(Device))
-
-#define Map2pVDevice(pDev) ((PVDevice)((UINT_PTR)pDev - (UINT)(UINT_PTR)&((PVDevice)0)->u.disk))
-
-/*
- * bUserDeviceMode
- */
-#define MEMBER_NOT_SET_MODE 0x5F
-
-/*
- * arrayType
- */
-#define VD_SPARE 0
-#define VD_REMOVABLE 1
-#define VD_ATAPI 2
-#define VD_SINGLE_DISK 3
-
-#define VD_JBOD 4 /* JBOD */
-#define VD_RAID_0 5 /* RAID 0 stripe */
-#define VD_RAID_1 6 /* RAID 1 mirror */
-#define VD_RAID_3 7 /* RAID 3 */
-#define VD_RAID_5 8 /* RAID 5 */
-#define VD_MAX_TYPE 8
-
-#ifdef SUPPORT_ARRAY
-#define mIsArray(pVDev) (pVDev->VDeviceType>VD_SINGLE_DISK)
-#else
-#define mIsArray(pVDev) 0
-#endif
-
-extern void (* HPTLIBAPI pfnSendCommand[])(_VBUS_ARG PCommand pCmd);
-extern void (* HPTLIBAPI pfnDeviceFailed[])(_VBUS_ARG PVDevice pVDev);
-void HPTLIBAPI fOsDiskFailed(_VBUS_ARG PVDevice pVDev);
-void HPTLIBAPI fDeviceSendCommand(_VBUS_ARG PCommand pCmd);
-void HPTLIBAPI fSingleDiskFailed(_VBUS_ARG PVDevice pVDev);
-
-/***************************************************************************
- * Description: RAID Adapter
- ***************************************************************************/
-
-typedef struct _VBus {
- /* pVDevice[] may be non-continuous */
- PVDevice pVDevice[MAX_VDEVICE_PER_VBUS];
-
- UINT nInstances;
- PChipInstance pChipInstance[MAX_CHIP_IN_VBUS];
-
- void * OsExt; /* for OS private use */
-
-
- int serial_mode;
- int next_active;
- int working_devs;
-
-
-
- PCommand pFreeCommands;
- DPC_ROUTINE PendingRoutines[MAX_PENDING_ROUTINES];
- int PendingRoutinesFirst, PendingRoutinesLast;
- DPC_ROUTINE IdleRoutines[MAX_IDLE_ROUTINES];
- int IdleRoutinesFirst, IdleRoutinesLast;
-
-#ifdef SUPPORT_ARRAY
- PVDevice pFreeArrayLink;
- BYTE _ArrayTables[MAX_ARRAY_PER_VBUS * ARRAY_VDEV_SIZE];
-#endif
-
-
-#ifdef _RAID5N_
- struct r5_global_data r5;
-#endif
-
-} VBus;
-
-/*
- * Array members must be on same VBus.
- * The platform dependent part shall select one of the following strategy.
- */
-#ifdef SET_VBUS_FOR_EACH_IRQ
-#define CHIP_ON_SAME_VBUS(pChip1, pChip2) ((pChip1)->bChipIntrNum==(pChip2)->bChipIntrNum)
-#elif defined(SET_VBUS_FOR_EACH_CONTROLLER)
-#define CHIP_ON_SAME_VBUS(pChip1, pChip2) \
- ((pChip1)->pci_bus==(pChip2)->pci_bus && (pChip1)->pci_dev==(pChip2)->pci_dev)
-#elif defined(SET_VBUS_FOR_EACH_FUNCTION)
-#define CHIP_ON_SAME_VBUS(pChip1, pChip2) \
- ((pChip1)->pci_bus==(pChip2)->pci_bus && (pChip1)->pci_dev==(pChip2)->pci_dev && (pChip1)->pci_func==(pChip2)->pci_func)
-#else
-#error You must set one vbus setting
-#endif
-
-#define FOR_EACH_CHANNEL_ON_VBUS(_pVBus, _pChan) \
- for (_pChan=pChanStart; _pChan<pChanEnd; _pChan++) \
- if (_pChan->pChipInstance->pVBus!=_pVBus) ; else
-
-#define FOR_EACH_DEV_ON_VBUS(pVBus, pVDev, i) \
- for(i = 0; i < MAX_VDEVICE_PER_VBUS; i++) \
- if ((pVDev=pVBus->pVDevice[i])==0) continue; else
-
-#define FOR_EACH_DEV_ON_ALL_VBUS(pVBus, pVDev, i) \
- for(pVBus = gVBus; pVBus < &gVBus[MAX_VBUS]; pVBus++) \
- for(i = 0; i < MAX_VDEVICE_PER_VBUS; i++) \
- if ((pVDev=pVBus->pVDevice[i])==0) continue; else
-
-#define FOR_EACH_ARRAY_ON_ALL_VBUS(pVBus, pArray, i) \
- for(pVBus = gVBus; pVBus < &gVBus[MAX_VBUS]; pVBus++) \
- for(i = 0; i < MAX_ARRAY_PER_VBUS; i++) \
- if ((pArray=((PVDevice)&pVBus->_ArrayTables[i*ARRAY_VDEV_SIZE]))->u.array.dArStamp==0) continue; else
-
-/***************************************************************************
- * Description: the functions called by IDE layer
- ***************************************************************************/
-#ifdef SUPPORT_ARRAY
-#define IdeRegisterDevice fCheckArray
-#else
-void HPTLIBAPI IdeRegisterDevice(PDevice pDev);
-#endif
-
-/***************************************************************************
- * Description: the functions OS must provided
- ***************************************************************************/
-
-void OsSetDeviceTable(PDevice pDevice, PIDENTIFY_DATA pIdentify);
-
-/*
- * allocate and free data structure
- */
-PChannel fGetChannelTable(void);
-PDevice fGetDeviceTable(void);
-#define OsGetChannelTable(x, y) fGetChannelTable()
-#define OsGetDeviceTable(x, y) fGetDeviceTable()
-void OsReturnTable(PDevice pDevice);
-/***************************************************************************
- * Description: the functions Prototype
- ***************************************************************************/
-/*
- * vdevice.c
- */
-int Initialize(void);
-int InitializeAllChips(void);
-void InitializeVBus(PVBus pVBus);
-void fRegisterChip(PChipInstance pChip);
-void __fRegisterVDevices(PVBus pVBus);
-void fRegisterVDevices(void);
-void HPTLIBAPI UnregisterVDevice(PVDevice);
-void HPTLIBAPI fCheckBootable(PVDevice pVDev);
-void HPTLIBAPI fFlushVDev(PVDevice pVDev);
-void HPTLIBAPI fFlushVDevAsync(PVDevice pVDev, DPC_PROC done, void *arg);
-void HPTLIBAPI fShutdownVDev(PVDevice pVDev);
-void HPTLIBAPI fResetVBus(_VBUS_ARG0);
-void HPTLIBAPI fCompleteAllCommandsSynchronously(PVBus _vbus_p);
-
-#define RegisterVDevice(pVDev)
-#define OsRegisterDevice(pVDev)
-#define OsUnregisterDevice(pVDev)
-
-#ifdef SUPPORT_VBUS_CONFIG
-void VBus_Config(PVBus pVBus, char *str);
-#else
-#define VBus_Config(pVBus, str)
-#endif
-
-#pragma pack(1)
-struct fdisk_partition_table
-{
- UCHAR bootid; /* bootable? 0=no, 128=yes */
- UCHAR beghead; /* beginning head number */
- UCHAR begsect; /* beginning sector number */
- UCHAR begcyl; /* 10 bit nmbr, with high 2 bits put in begsect */
- UCHAR systid; /* Operating System type indicator code */
- UCHAR endhead; /* ending head number */
- UCHAR endsect; /* ending sector number */
- UCHAR endcyl; /* also a 10 bit nmbr, with same high 2 bit trick */
- UINT relsect; /* first sector relative to start of disk */
- UINT numsect; /* number of sectors in partition */
-};
-
-typedef struct _Master_Boot_Record
-{
- UCHAR bootinst[446]; /* space to hold actual boot code */
- struct fdisk_partition_table parts[4];
- USHORT signature; /* set to 0xAA55 to indicate PC MBR format */
-}
-Master_Boot_Record, *PMaster_Boot_Record;
-
-#ifndef SUPPORT_ARRAY
-/* TODO: move it later */
-#ifdef __BIG_ENDIAN_BITFIELD
-typedef DWORD TIME_RECORD;
-#else
-typedef struct _TIME_RECORD {
- UINT seconds:6; /* 0 - 59 */
- UINT minutes:6; /* 0 - 59 */
- UINT month:4; /* 1 - 12 */
- UINT hours:6; /* 0 - 59 */
- UINT day:5; /* 1 - 31 */
- UINT year:5; /* 0=2000, 31=2031 */
-} TIME_RECORD;
-#endif
-#endif
-
-#pragma pack()
-#endif
OpenPOWER on IntegriCloud