CICell ihandle;
long ret;
+ // intercept software RAID's virtual devices
+ if(isRAIDPath(devSpec))
+ return (CICell)RAIDOpen(devSpec);
+
ciArgs.service = "open";
ciArgs.nArgs = 1;
ciArgs.nReturns = 1;
{
CIArgs ciArgs;
+ if(isRAIDDevice((void*)ihandle)) {
+ RAIDClose((RAIDDevicePtr)ihandle);
+ return;
+ }
+
ciArgs.service = "close";
ciArgs.nArgs = 1;
ciArgs.nReturns = 0;
long actual;
long ret;
+ if(isRAIDDevice((void*)ihandle))
+ return RAIDRead((RAIDDevicePtr)ihandle, addr, length, -1);
+
ciArgs.service = "read";
ciArgs.nArgs = 3;
ciArgs.nReturns = 1;
CIArgs ciArgs;
long actual;
long ret;
+
+ if(isRAIDDevice((void*)ihandle)) {
+ printf("who's trying to write to RAID?!\n");
+ return -1;
+ }
ciArgs.service = "write";
ciArgs.nArgs = 3;
CIArgs ciArgs;
long ret;
+ if(isRAIDDevice((void*)ihandle))
+ return RAIDSeek((RAIDDevicePtr)ihandle, position);
+
ciArgs.service = "seek";
ciArgs.nArgs = 3;
ciArgs.nReturns = 1;