brasero r630 - branches/brasero_0_7/src/scsi
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r630 - branches/brasero_0_7/src/scsi
- Date: Mon, 4 Feb 2008 21:28:26 +0000 (GMT)
Author: philippr
Date: Mon Feb 4 21:28:26 2008
New Revision: 630
URL: http://svn.gnome.org/viewvc/brasero?rev=630&view=rev
Log:
Add forgotten files
Added:
branches/brasero_0_7/src/scsi/scsi-read-cd.c
branches/brasero_0_7/src/scsi/scsi-read-cd.h
Added: branches/brasero_0_7/src/scsi/scsi-read-cd.c
==============================================================================
--- (empty file)
+++ branches/brasero_0_7/src/scsi/scsi-read-cd.c Mon Feb 4 21:28:26 2008
@@ -0,0 +1,146 @@
+/***************************************************************************
+ * scsi-read-cd.c
+ *
+ * Sun Jan 27 20:39:40 2008
+ * Copyright 2008 Philippe Rouquier
+ * <bonfire-app wanadoo fr>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
+ */
+
+#include <fcntl.h>
+
+#include <glib.h>
+
+#include "scsi-error.h"
+#include "scsi-utils.h"
+#include "scsi-base.h"
+#include "scsi-command.h"
+#include "scsi-opcodes.h"
+#include "scsi-read-cd.h"
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+
+struct _BraseroReadCDCDB {
+ uchar opcode;
+
+ uchar rel_add :1;
+ uchar reserved1 :1;
+ uchar sec_type :3;
+ uchar reserved0 :3;
+
+ uchar start_lba [4];
+ uchar len [3];
+
+ uchar reserved2 :1;
+ uchar error :2;
+ uchar edc :1;
+ uchar user_data :1;
+ uchar header :2;
+ uchar sync :1;
+
+ uchar subchannel :3;
+ uchar reserved3 :5;
+
+ uchar ctl;
+};
+
+#else
+
+struct _BraseroReadCDCDB {
+ uchar opcode;
+
+ uchar reserved0 :3;
+ uchar sec_type :3;
+ uchar reserved1 :1;
+ uchar rel_add :1;
+
+ uchar start_lba [4];
+ uchar len [3];
+
+ uchar sync :1;
+ uchar header :2;
+ uchar user_data :1;
+ uchar edc :1;
+ uchar error :2;
+ uchar reserved2 :1;
+
+ uchar reserved3 :5;
+ uchar subchannel :3;
+
+ uchar ctl;
+};
+
+#endif
+
+typedef struct _BraseroReadCDCDB BraseroReadCDCDB;
+
+BRASERO_SCSI_COMMAND_DEFINE (BraseroReadCDCDB,
+ READ_CD,
+ O_RDONLY,
+ BRASERO_SCSI_READ);
+
+BraseroScsiResult
+brasero_mmc1_read_block (int fd,
+ gboolean user_data,
+ BraseroScsiBlockType type,
+ BraseroScsiBlockHeader header,
+ BraseroScsiBlockSubChannel channel,
+ int start,
+ int size,
+ unsigned char *buffer,
+ int buffer_len,
+ BraseroScsiErrCode *error)
+{
+ BraseroReadCDCDB *cdb;
+ BraseroScsiResult res;
+
+ cdb = brasero_scsi_command_new (&info, fd);
+ BRASERO_SET_32 (cdb->start_lba, start);
+
+ /* NOTE: if we just want to test if block is readable len can be 0 */
+ BRASERO_SET_24 (cdb->len, size);
+
+ /* reladr should be O */
+ /* no sync field included */
+ cdb->sync = 0;
+
+ /* no filtering */
+ cdb->sec_type = type;
+
+ /* header ?*/
+ cdb->header = header;
+
+ /* returns user data ?*/
+ cdb->user_data = user_data;
+
+ /* no EDC */
+ /* no error/C2 error */
+
+ /* subchannel */
+ cdb->subchannel = channel;
+
+ if (buffer)
+ memset (buffer, 0, buffer_len);
+
+ res = brasero_scsi_command_issue_sync (cdb,
+ buffer,
+ buffer_len,
+ error);
+
+ return res;
+}
Added: branches/brasero_0_7/src/scsi/scsi-read-cd.h
==============================================================================
--- (empty file)
+++ branches/brasero_0_7/src/scsi/scsi-read-cd.h Mon Feb 4 21:28:26 2008
@@ -0,0 +1,59 @@
+/***************************************************************************
+ * scsi-read-cd.h
+ *
+ * Sun Jan 27 20:39:17 2008
+ * Copyright 2008 Philippe Rouquier
+ * <bonfire-app wanadoo fr>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
+ */
+
+#ifndef _SCSI_READ_CD_H
+#define _SCSI_READ_CD_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+
+typedef enum {
+ BRASERO_SCSI_BLOCK_HEADER_NONE = 0,
+ BRASERO_SCSI_BLOCK_HEADER_MAIN = 1,
+ BRASERO_SCSI_BLOCK_HEADER_SUB = 1 << 1
+} BraseroScsiBlockHeader;
+
+typedef enum {
+ BRASERO_SCSI_BLOCK_TYPE_ANY = 0,
+ BRASERO_SCSI_BLOCK_TYPE_CDDA = 1,
+ BRASERO_SCSI_BLOCK_TYPE_MODE1 = 2,
+ BRASERO_SCSI_BLOCK_TYPE_MODE2_FORMLESS = 3,
+ BRASERO_SCSI_BLOCK_TYPE_MODE2_FORM1 = 4,
+ BRASERO_SCSI_BLOCK_TYPE_MODE2_FORM2 = 5
+} BraseroScsiBlockType;
+
+typedef enum {
+ BRASERO_SCSI_BLOCK_NO_SUBCHANNEL = 0,
+ BRASERO_SCSI_BLOCK_SUB_Q = 2,
+ BRASERO_SCSI_BLOCK_SUB_R_W = 4
+} BraseroScsiBlockSubChannel;
+
+
+G_END_DECLS
+
+#endif /* _SCSI_READ_CD_H */
+
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]