History

Revert "pktcdvd: remove driver."

This reverts commit f40eb99897af665f11858dd7b56edcb62c3f3c67. There are apparently still users out there of this driver. While we'd love to remove it to ease the maintenance burden, let's reinstate it for now until better (userspace) solutions can be developed.

Jens Axboe committed 3 years ago

Commit 4b83e991 parent 050a4f38 files · +3419 −0Browse files

Showing the changes to include/uapi (1 of 8 files). Show all

Unified · Split

include/uapi/linux/pktcdvd.h+112−0
@@ -0,0 +1,112 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Copyright (C) 2000 Jens Axboe <axboe@suse.de>
4+ * Copyright (C) 2001-2004 Peter Osterlund <petero2@telia.com>
5+ *
6+ * May be copied or modified under the terms of the GNU General Public
7+ * License. See linux/COPYING for more information.
8+ *
9+ * Packet writing layer for ATAPI and SCSI CD-R, CD-RW, DVD-R, and
10+ * DVD-RW devices.
11+ *
12+ */
13+#ifndef _UAPI__PKTCDVD_H
14+#define _UAPI__PKTCDVD_H
15+
16+#include <linux/types.h>
17+
18+/*
19+ * 1 for normal debug messages, 2 is very verbose. 0 to turn it off.
20+ */
21+#define PACKET_DEBUG 1
22+
23+#define MAX_WRITERS 8
24+
25+#define PKT_RB_POOL_SIZE 512
26+
27+/*
28+ * How long we should hold a non-full packet before starting data gathering.
29+ */
30+#define PACKET_WAIT_TIME (HZ * 5 / 1000)
31+
32+/*
33+ * use drive write caching -- we need deferred error handling to be
34+ * able to successfully recover with this option (drive will return good
35+ * status as soon as the cdb is validated).
36+ */
37+#if defined(CONFIG_CDROM_PKTCDVD_WCACHE)
38+#define USE_WCACHING 1
39+#else
40+#define USE_WCACHING 0
41+#endif
42+
43+/*
44+ * No user-servicable parts beyond this point ->
45+ */
46+
47+/*
48+ * device types
49+ */
50+#define PACKET_CDR 1
51+#define PACKET_CDRW 2
52+#define PACKET_DVDR 3
53+#define PACKET_DVDRW 4
54+
55+/*
56+ * flags
57+ */
58+#define PACKET_WRITABLE 1 /* pd is writable */
59+#define PACKET_NWA_VALID 2 /* next writable address valid */
60+#define PACKET_LRA_VALID 3 /* last recorded address valid */
61+#define PACKET_MERGE_SEGS 4 /* perform segment merging to keep */
62+ /* underlying cdrom device happy */
63+
64+/*
65+ * Disc status -- from READ_DISC_INFO
66+ */
67+#define PACKET_DISC_EMPTY 0
68+#define PACKET_DISC_INCOMPLETE 1
69+#define PACKET_DISC_COMPLETE 2
70+#define PACKET_DISC_OTHER 3
71+
72+/*
73+ * write type, and corresponding data block type
74+ */
75+#define PACKET_MODE1 1
76+#define PACKET_MODE2 2
77+#define PACKET_BLOCK_MODE1 8
78+#define PACKET_BLOCK_MODE2 10
79+
80+/*
81+ * Last session/border status
82+ */
83+#define PACKET_SESSION_EMPTY 0
84+#define PACKET_SESSION_INCOMPLETE 1
85+#define PACKET_SESSION_RESERVED 2
86+#define PACKET_SESSION_COMPLETE 3
87+
88+#define PACKET_MCN "4a656e734178626f65323030300000"
89+
90+#undef PACKET_USE_LS
91+
92+#define PKT_CTRL_CMD_SETUP 0
93+#define PKT_CTRL_CMD_TEARDOWN 1
94+#define PKT_CTRL_CMD_STATUS 2
95+
96+struct pkt_ctrl_command {
97+ __u32 command; /* in: Setup, teardown, status */
98+ __u32 dev_index; /* in/out: Device index */
99+ __u32 dev; /* in/out: Device nr for cdrw device */
100+ __u32 pkt_dev; /* in/out: Device nr for packet device */
101+ __u32 num_devices; /* out: Largest device index + 1 */
102+ __u32 padding; /* Not used */
103+};
104+
105+/*
106+ * packet ioctls
107+ */
108+#define PACKET_IOCTL_MAGIC ('X')
109+#define PACKET_CTRL_CMD _IOWR(PACKET_IOCTL_MAGIC, 1, struct pkt_ctrl_command)
110+
111+
112+#endif /* _UAPI__PKTCDVD_H */