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

📄 sc_inquiry.c

📁 对SCSI设备 直接存取的通用库
💻 C
字号:
/*  sc_inquiry -- inquiry  Copyright (C) 1996 Dieter Baron and Armin Obersteiner  This file is part of libscsi, a library for direct scsi device access  The authors can be contacted at	<dillo@giga.or.at>	<armin.obersteiner@giga.or.at>  This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or  (at your option) any later version.  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#include <scsi/all.h>intsc_inquiry(SCSI *fd, struct sc_inquiry *page){    static unsigned char cmd[6] = { 0x12, 0x00, 0x00, 0x00, 255, 0x00 };    u_char b[256];    char i;    int len;    int result;    if ((result=sc_send(fd, SC_READ, 6, cmd, 255, b)) < 0)	return result;    memcpy(page, b, 4);    *(((char *)page)+4) = b[7];    for (i=7; i>=0 && b[i+8]==' '; --i)	;    page->vendor = (char *)malloc(i+2);    strncpy(page->vendor, b+8, i+1);    page->vendor[i+1] = '\0';        for (i=15; i>=0 && b[i+16]==' '; --i)	;    page->product = (char *)malloc(i+2);    strncpy(page->product, b+16, i+1);    page->product[i+1] = '\0';    for (i=3; i>=0 && b[i+32]==' '; --i)	;    page->revision = (char *)malloc(i+2);    strncpy(page->revision, b+32, i+1);    page->revision[i+1] = '\0';    page->vlen1 = page->vlen2 = 0;    len = b[4] - 35;    if (len > 60) {	page->vlen2 = len-60;	page->vspec2 = (u_char *)malloc(len-60);	memcpy(page->vspec2, b+96, len-60);    }    if (len > 20)	len = 20;    if (len > 0) {	page->vlen1 = len;	page->vspec1 = (u_char *)malloc(len);	memcpy(page->vspec1, b+36, len);    }    return 0;}

⌨️ 快捷键说明

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