⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pci2000.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
字号:
/**************************************************************************** * Perceptive Solutions, Inc. PCI-2000 device driver for Linux. * * pci2000.h - Linux Host Driver for PCI-2000 IntelliCache SCSI Adapters * * Copyright (c) 1997-1999 Perceptive Solutions, Inc. * All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that redistributions of source * code retain the above copyright notice and this comment without * modification. * * Technical updates and product information at: *  http://www.psidisk.com * * Please send questions, comments, bug reports to: *  tech@psidisk.com Technical Support * ****************************************************************************/#ifndef _PCI2000_H#define _PCI2000_H#include <linux/types.h>#include <linux/kdev_t.h>#ifndef	PSI_EIDE_SCSIOP#define	PSI_EIDE_SCSIOP	1#ifndef LINUX_VERSION_CODE#include <linux/version.h>#endif #define	LINUXVERSION(v,p,s)    (((v)<<16) + ((p)<<8) + (s))/************************************************//*		definition of standard data types		*//************************************************/#define	CHAR	char#define	UCHAR	unsigned char#define	SHORT	short#define	USHORT	unsigned short#define	BOOL	long#define	LONG	long#define	ULONG	unsigned long#define	VOID	voidtypedef	CHAR	*PCHAR;typedef	UCHAR	*PUCHAR;typedef	SHORT	*PSHORT;typedef	USHORT	*PUSHORT;typedef	BOOL	*PBOOL;typedef	LONG	*PLONG;typedef	ULONG	*PULONG;typedef	VOID	*PVOID;/************************************************//*		Misc. macros			 				*//************************************************/#define ANY2SCSI(up, p)					\((UCHAR *)up)[0] = (((ULONG)(p)) >> 8);	\((UCHAR *)up)[1] = ((ULONG)(p));#define SCSI2LONG(up)					\( (((long)*(((UCHAR *)up))) << 16)		\+ (((long)(((UCHAR *)up)[1])) << 8)		\+ ((long)(((UCHAR *)up)[2])) )#define XANY2SCSI(up, p)				\((UCHAR *)up)[0] = ((long)(p)) >> 24;	\((UCHAR *)up)[1] = ((long)(p)) >> 16;	\((UCHAR *)up)[2] = ((long)(p)) >> 8;	\((UCHAR *)up)[3] = ((long)(p));#define XSCSI2LONG(up)					\( (((long)(((UCHAR *)up)[0])) << 24)	\+ (((long)(((UCHAR *)up)[1])) << 16)	\+ (((long)(((UCHAR *)up)[2])) <<  8)	\+ ((long)(((UCHAR *)up)[3])) )/************************************************//*		SCSI CDB operation codes 				*//************************************************/#define SCSIOP_TEST_UNIT_READY		0x00#define SCSIOP_REZERO_UNIT			0x01#define SCSIOP_REWIND				0x01#define SCSIOP_REQUEST_BLOCK_ADDR	0x02#define SCSIOP_REQUEST_SENSE		0x03#define SCSIOP_FORMAT_UNIT			0x04#define SCSIOP_READ_BLOCK_LIMITS	0x05#define SCSIOP_REASSIGN_BLOCKS		0x07#define SCSIOP_READ6				0x08#define SCSIOP_RECEIVE				0x08#define SCSIOP_WRITE6				0x0A#define SCSIOP_PRINT				0x0A#define SCSIOP_SEND					0x0A#define SCSIOP_SEEK6				0x0B#define SCSIOP_TRACK_SELECT			0x0B#define SCSIOP_SLEW_PRINT			0x0B#define SCSIOP_SEEK_BLOCK			0x0C#define SCSIOP_PARTITION			0x0D#define SCSIOP_READ_REVERSE			0x0F#define SCSIOP_WRITE_FILEMARKS		0x10#define SCSIOP_FLUSH_BUFFER			0x10#define SCSIOP_SPACE				0x11#define SCSIOP_INQUIRY				0x12#define SCSIOP_VERIFY6				0x13#define SCSIOP_RECOVER_BUF_DATA		0x14#define SCSIOP_MODE_SELECT			0x15#define SCSIOP_RESERVE_UNIT			0x16#define SCSIOP_RELEASE_UNIT			0x17#define SCSIOP_COPY					0x18#define SCSIOP_ERASE				0x19#define SCSIOP_MODE_SENSE			0x1A#define SCSIOP_START_STOP_UNIT		0x1B#define SCSIOP_STOP_PRINT			0x1B#define SCSIOP_LOAD_UNLOAD			0x1B#define SCSIOP_RECEIVE_DIAGNOSTIC	0x1C#define SCSIOP_SEND_DIAGNOSTIC		0x1D#define SCSIOP_MEDIUM_REMOVAL		0x1E#define SCSIOP_READ_CAPACITY		0x25#define SCSIOP_READ					0x28#define SCSIOP_WRITE				0x2A#define SCSIOP_SEEK					0x2B#define SCSIOP_LOCATE				0x2B#define SCSIOP_WRITE_VERIFY			0x2E#define SCSIOP_VERIFY				0x2F#define SCSIOP_SEARCH_DATA_HIGH		0x30#define SCSIOP_SEARCH_DATA_EQUAL	0x31#define SCSIOP_SEARCH_DATA_LOW		0x32#define SCSIOP_SET_LIMITS			0x33#define SCSIOP_READ_POSITION		0x34#define SCSIOP_SYNCHRONIZE_CACHE	0x35#define SCSIOP_COMPARE				0x39#define SCSIOP_COPY_COMPARE			0x3A#define SCSIOP_WRITE_DATA_BUFF		0x3B#define SCSIOP_READ_DATA_BUFF		0x3C#define SCSIOP_CHANGE_DEFINITION	0x40#define SCSIOP_READ_SUB_CHANNEL		0x42#define SCSIOP_READ_TOC				0x43#define SCSIOP_READ_HEADER			0x44#define SCSIOP_PLAY_AUDIO			0x45#define SCSIOP_PLAY_AUDIO_MSF		0x47#define SCSIOP_PLAY_TRACK_INDEX		0x48#define SCSIOP_PLAY_TRACK_RELATIVE	0x49#define SCSIOP_PAUSE_RESUME			0x4B#define SCSIOP_LOG_SELECT			0x4C#define SCSIOP_LOG_SENSE			0x4D#define SCSIOP_MODE_SELECT10		0x55#define SCSIOP_MODE_SENSE10			0x5A#define SCSIOP_LOAD_UNLOAD_SLOT		0xA6#define SCSIOP_MECHANISM_STATUS		0xBD#define SCSIOP_READ_CD				0xBE// SCSI read capacity structuretypedef	struct _READ_CAPACITY_DATA	{	ULONG blks;				/* total blocks (converted to little endian) */	ULONG blksiz;			/* size of each (converted to little endian) */	}	READ_CAPACITY_DATA, *PREAD_CAPACITY_DATA;// SCSI inquiry datatypedef struct _INQUIRYDATA	{	UCHAR DeviceType			:5;	UCHAR DeviceTypeQualifier	:3;	UCHAR DeviceTypeModifier	:7;	UCHAR RemovableMedia		:1;    UCHAR Versions;    UCHAR ResponseDataFormat;    UCHAR AdditionalLength;    UCHAR Reserved[2];	UCHAR SoftReset				:1;	UCHAR CommandQueue			:1;	UCHAR Reserved2				:1;	UCHAR LinkedCommands		:1;	UCHAR Synchronous			:1;	UCHAR Wide16Bit				:1;	UCHAR Wide32Bit				:1;	UCHAR RelativeAddressing	:1;    UCHAR VendorId[8];    UCHAR ProductId[16];    UCHAR ProductRevisionLevel[4];    UCHAR VendorSpecific[20];    UCHAR Reserved3[40];	}	INQUIRYDATA, *PINQUIRYDATA;#endif// function prototypesint Pci2000_Detect			(Scsi_Host_Template *tpnt);int Pci2000_Command			(Scsi_Cmnd *SCpnt);int Pci2000_QueueCommand	(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *));int Pci2000_Abort			(Scsi_Cmnd *SCpnt);int Pci2000_Reset			(Scsi_Cmnd *SCpnt, unsigned int flags);int Pci2000_Release			(struct Scsi_Host *pshost);int Pci2000_BiosParam		(Disk *disk, kdev_t dev, int geom[]);#ifndef NULL	#define NULL 0#endif/* screen is 80 columns wide, damnit! */#define PCI2000 {				\	proc_name:	"pci2000",					\	name:		"PCI-2000 SCSI Intelligent Disk Controller",	\	detect:		Pci2000_Detect,					\	release:	Pci2000_Release,				\	command:	Pci2000_Command,				\	queuecommand:	Pci2000_QueueCommand,				\	abort:		Pci2000_Abort,					\	reset:		Pci2000_Reset,					\	bios_param:	Pci2000_BiosParam,				\	can_queue:	16,						\	this_id:	-1,						\	sg_tablesize:	16,						\	cmd_per_lun:	1,						\	present:	0,						\	unchecked_isa_dma:0,						\	use_clustering:	DISABLE_CLUSTERING,				\	use_new_eh_code:0						\}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -