📄 cdb.c
字号:
/* -*- Mode: C -*- * cdb.c * * Description : Predefined CDBs that may be sent via the * tape_execute_cdb and ndmp_execute_cdb commands. * * Copyright (c) 1996,1997 PDC, Network Appliance. All Rights Reserved. * * $Id: cdb.c,v 1.4 1997/02/10 07:13:26 tim Exp $ */#if !defined(lint) && !defined(SABER)static char rcsId[] __attribute__ ((unused)) = "@(#) $Id: cdb.c,v 1.4 1997/02/10 07:13:26 tim Exp $";#endif#include <sys/types.h>#include <stdio.h>#include "ndmp_common.h"struct Cdb{ int cdb_len; char cdb[12]; int data_len; char data[256];} Cdbs[] = { { /* 0 Test Unit Ready */ 6, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, {0} }, { /* 1 Request Sense */ 6, {3, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, {0} }, { /* 2 Read Element Status */ 12, {0xB8, 0, 0, 1, 0, 7, 0, 0, 0, 0xff, 0, 0}, 0, {0} }, { /* 3 Move Medium (slot 1 to drive) */ 12, {0xA5, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0}, 0, {0} }, { /* 4 Move Medium (drive to slot 1) */ 12, {0xA5, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0}, 0, {0} }, { /* 5 Mode select to diagnose filer panic bug */ 10, {0x15, 0x10, 0, 0, 0x15, 0, 0x15, 0, 0, 0x10}, 0, {0} } };#define N_CDBS (sizeof(Cdbs)/sizeof(struct Cdb)) static voidhex_dump(char *data, int len); intgetCdb(u_long num, char **cdb, u_long *cdb_len, char **data, u_long *data_len){ if (num >= N_CDBS) return(-1); *cdb = Cdbs[num].cdb; *cdb_len = Cdbs[num].cdb_len; *data = Cdbs[num].data; *data_len = Cdbs[num].data_len; return(0);}voiddisplayCdbReply(char status, u_long dataout_len, char *data, int data_len, char *sense, int sense_len){ Log("SCSI status: 0x%x\n", (u_int)status); Log("Dataout len: %d\n", dataout_len); if (sense_len) { Log("Sense data:"); hex_dump(sense, sense_len); return; } if (data_len) { Log("Data:"); hex_dump(data, data_len); }}static voidhex_dump(char *data, int len){ int i, j; for (i = 0; i < len; i += 16) { char buf[128]; char *p; sprintf(buf, " 0x%04x: ", i); p = buf+10; for (j = 0; j < 16 && i+j < len; j++) { sprintf(p, "%02x ", (unsigned int)data[i+j] & 0x0ff); p += 3; if (j+1 % 2 == 0) *p++ = ' '; } *p = '\0'; Log("%s\n", buf); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -