|
|
researchv10 Norman
#include <libc.h>
#include "worm.h"
#include <sys/types.h>
#include <sys/udaioc.h>
main(argc, argv)
char **argv;
{
Superblock s;
char *e, *vol_id = 0;
char buf[1024];
char *dev = "/dev/worm0";
int c;
extern char *optarg;
extern int optind;
while((c = getopt(argc, argv, "f:")) != -1)
switch(c)
{
case 'f': dev = optarg; break;
case '?': usage();
}
if(optind != argc)
usage();
dev = mapdev(dev);
if((s.fd = open(dev, 2)) < 0){
if(!vol_id)
perror(dev);
exit(2);
}
/*
normally, you have to read to bring the drive online.
however, when you are likely to call reset, the drive
is online and blocked so skip the read
*/
/*lseek(s.fd, 1024L, 0);
read(s.fd, buf, sizeof buf);/**/
if(ioctl(s.fd, UIORST) < 0)
perror("reset ioctl");
exit(0);
}
usage()
{
print("Usage: worm reset [-fdevice]\n");
exit(2);
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.