patch-libogmdvd_ogmdvd-transport_c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. $OpenBSD: patch-libogmdvd_ogmdvd-transport_c,v 1.1.1.1 2012/06/26 11:46:06 pascal Exp $
  2. seems like the code for HAVE_SCSIREQ_T has not been tested/updated for a long
  3. time ...
  4. --- libogmdvd/ogmdvd-transport.c.orig Mon Jun 18 22:18:17 2012
  5. +++ libogmdvd/ogmdvd-transport.c Mon Jun 18 22:32:49 2012
  6. @@ -23,12 +23,14 @@
  7. #include "config.h"
  8. #endif
  9. -#include "ogmdvd-transport.h"
  10. +//#include "ogmdvd-transport.h"
  11. +typedef struct _Scsi_Command Scsi_Command;
  12. #include <poll.h>
  13. #include <errno.h>
  14. #include <fcntl.h>
  15. #include <unistd.h>
  16. +#include <stdio.h>
  17. #include <stdlib.h>
  18. #include <string.h>
  19. @@ -271,13 +273,13 @@ scsi_command_set (Scsi_Command *cmd, size_t index, uns
  20. {
  21. if (index == 0)
  22. {
  23. - memset (&req, 0, sizeof (req));
  24. - req.flags = SCCMD_ESCAPE;
  25. - req.timeout = 30000;
  26. - req.senselen = 18; //sizeof(req.sense);
  27. + memset (&cmd->req, 0, sizeof (cmd->req));
  28. + cmd->req.flags = SCCMD_ESCAPE;
  29. + cmd->req.timeout = 30000;
  30. + cmd->req.senselen = 18; //sizeof(req.sense);
  31. }
  32. - req.cmdlen = index + 1;
  33. - req.cmd[index] = value;
  34. + cmd->req.cmdlen = index + 1;
  35. + cmd->req.cmd[index] = value;
  36. }
  37. int
  38. @@ -285,24 +287,24 @@ scsi_command_transport (Scsi_Command *cmd, Direction d
  39. {
  40. int ret = 0;
  41. - req.databuf = (caddr_t) buf;
  42. - req.datalen = sz;
  43. - req.flags |= dir;
  44. + cmd->req.databuf = (caddr_t) buf;
  45. + cmd->req.datalen = sz;
  46. + cmd->req.flags |= dir;
  47. - if (ioctl (fd, SCIOCCOMMAND, &req) < 0)
  48. + if (ioctl (cmd->fd, SCIOCCOMMAND, &cmd->req) < 0)
  49. return -1;
  50. - if (req.retsts == SCCMD_OK)
  51. + if (cmd->req.retsts == SCCMD_OK)
  52. return 0;
  53. errno = EIO;
  54. ret = -1;
  55. - if (req.retsts == SCCMD_SENSE)
  56. + if (cmd->req.retsts == SCCMD_SENSE)
  57. {
  58. - ret = ERRCODE (req.sense);
  59. + ret = ERRCODE (cmd->req.sense);
  60. if (ret == 0)
  61. ret = -1;
  62. else
  63. - CREAM_ON_ERRNO (req.sense);
  64. + CREAM_ON_ERRNO (cmd->req.sense);
  65. }
  66. return ret;