reset.c
Upload User: lsh121205
Upload Date: 2007-01-08
Package Size: 25k
Code Size: 1k
Category:

DVD

Development Platform:

C/C++

  1. /*
  2.  * A noddy program which tries to reset all AGID's on the DVD-ROM drive.
  3.  */
  4. #include<stdio.h>
  5. #include<fcntl.h>
  6. #if defined(__OpenBSD__)
  7. # include <sys/dvdio.h>
  8. #elif defined(__linux__)
  9. # include <linux/cdrom.h>
  10. #else
  11. # error "Need the DVD ioctls"
  12. #endif
  13. #include<sys/ioctl.h>
  14. #include<errno.h>
  15. static int fd;
  16. #define DVD "/dev/cdrom"
  17. int main(int ac, char **av)
  18. {
  19. dvd_authinfo ai;
  20. char *device = DVD;
  21. int i;
  22. if (ac > 1)
  23. device = av[1];
  24. fd = open(device, O_RDONLY | O_NONBLOCK);
  25. if (fd < 0) {
  26. printf("unable to open dvd drive (%s).n", device);
  27. return 1;
  28. }
  29. for (i = 0; i < 4; i++) {
  30. memset(&ai, 0, sizeof(ai));
  31. ai.type = DVD_INVALIDATE_AGID;
  32. ai.lsa.agid = i;
  33. ioctl(fd, DVD_AUTH, &ai);
  34. }
  35. return 0;
  36. }