14 char dskname[] =
"TestDisk";
22 kprintf(
"xsh_rdstest: open %s returns %s, stopping\r\n",
23 dskname, retval==
SYSERR?
"SYSERR":
"TIMEOUT");
27 kprintf(
"xsh_rdstest: open %s returns %d\r\n",
31 kprintf(
"writing eight blocks to the disk\r\n");
32 for (i=7; i>=0; i--) {
34 kprintf(
"\n\r*** writing block %d\n\r",i);
37 kprintf(
"write to block %d returns %d\r\n", i, retval);
42 kprintf(
"read from block 1 has return value %d\r\n", retval);
46 if (buff[i] != (
char) (0xff&1)) {
52 kprintf(
"Block 1 came back intact!!!\r\n");
54 kprintf(
"Sadly :-( byte %d is not correct!!!\r\n", i);
61 if (buff[i] != (
char) (0xff&6)) {
67 kprintf(
"Block 6 came back intact!!!\r\n");
69 kprintf(
"Sadly :-( byte %d is not correct!!!\r\n", i);
74 buff2[i] =
"abcdefghijklmnopqrstuvwxyz"[j++];
78 kprintf(
"rewriting block 5\n\r");
80 kprintf(
"write to block 5 has return value %d\r\n", retval);
87 if (buff2[i] != buff[i]) {
94 kprintf(
"Block 5 came back intact!!!\r\n");
96 kprintf(
"Sadly :-( byte %d is not correct!!!\r\n", i);
101 kprintf(
"reading block 6 again\n\r");
103 kprintf(
"read from block 6 has return value %d\r\n", retval);
107 if ( buff[i] != (
char)(0xff&6) ) {
113 kprintf(
"Got back identical results!!!\r\n");
115 kprintf(
"Sadly :-( byte %d differs!!!\r\n", i);
syscall kprintf(char *fmt,...)
ポーリングI/Oを使用して、フォーマットされた文字列をコンソールに出力する。
syscall read(did32, char *, uint32)
syscall write(did32, char *, uint32)
shellcmd xsh_rdstest(int nargs, char *args[])
int int32
符号あり32ビット整数(int)
void * memset(void *, const int, int32)
指定のByteブロックに対して、同じ値をNバイト分書き込む。
int32 shellcmd
シェルコール関数 返り値の型
syscall open(did32, char *, char *)
#define NULLCH
NULL文字(NULL終端)