V10/cmd/worm/woffline.c
#include <libc.h>
#include "worm.h"
#include <sys/types.h>
#include <sys/udaioc.h>
main(argc, argv)
char **argv;
{
Superblock s;
char *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);
}
/* have to read to make ioctl work */
lseek(s.fd, 1024L, 0);
read(s.fd, buf, sizeof buf);
if(ioctl(s.fd, UIOSPDW) < 0){
perror("ioctl");
exit(2);
}
exit(0);
}
usage()
{
print("Usage: worm offline [-fdevice]\n");
exit(2);
}