gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 604Rust 56Shell 36Markdown 281227 Definitions

⎇ 0523ea066509b320d491ce444b9650bb1c7c9dfe recipes/linux-headers-alpine-compat.patch 531 lines · 13.6 KB History raw

selfhost-verify: pieza 3 (linux-headers swap) — SWAP_LINUX_HEADERS=1, byte-idéntico a Alpine en host b05badee2 · sergio ·

1--- /dev/null
2+++ b/alpine-overlay/linux/kernel.h
3@@ -0,0 +1,10 @@
4+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
5+#ifndef _LINUX_KERNEL_H
6+#define _LINUX_KERNEL_H
7+
8+#ifdef __GLIBC__
9+#include <linux/sysinfo.h>
10+#endif
11+#include <linux/const.h>
12+
13+#endif /* _LINUX_KERNEL_H */
14--- /dev/null
15+++ b/alpine-overlay/linux/if_tunnel.h
16@@ -0,0 +1,216 @@
17+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
18+#ifndef _IF_TUNNEL_H_
19+#define _IF_TUNNEL_H_
20+
21+#include <linux/types.h>
22+#include <asm/byteorder.h>
23+
24+
25+#define SIOCGETTUNNEL   (SIOCDEVPRIVATE + 0)
26+#define SIOCADDTUNNEL   (SIOCDEVPRIVATE + 1)
27+#define SIOCDELTUNNEL   (SIOCDEVPRIVATE + 2)
28+#define SIOCCHGTUNNEL   (SIOCDEVPRIVATE + 3)
29+#define SIOCGETPRL      (SIOCDEVPRIVATE + 4)
30+#define SIOCADDPRL      (SIOCDEVPRIVATE + 5)
31+#define SIOCDELPRL      (SIOCDEVPRIVATE + 6)
32+#define SIOCCHGPRL      (SIOCDEVPRIVATE + 7)
33+#define SIOCGET6RD      (SIOCDEVPRIVATE + 8)
34+#define SIOCADD6RD      (SIOCDEVPRIVATE + 9)
35+#define SIOCDEL6RD      (SIOCDEVPRIVATE + 10)
36+#define SIOCCHG6RD      (SIOCDEVPRIVATE + 11)
37+
38+#define GRE_CSUM	__cpu_to_be16(0x8000)
39+#define GRE_ROUTING	__cpu_to_be16(0x4000)
40+#define GRE_KEY		__cpu_to_be16(0x2000)
41+#define GRE_SEQ		__cpu_to_be16(0x1000)
42+#define GRE_STRICT	__cpu_to_be16(0x0800)
43+#define GRE_REC		__cpu_to_be16(0x0700)
44+#define GRE_ACK		__cpu_to_be16(0x0080)
45+#define GRE_FLAGS	__cpu_to_be16(0x0078)
46+#define GRE_VERSION	__cpu_to_be16(0x0007)
47+
48+#define GRE_IS_CSUM(f)		((f) & GRE_CSUM)
49+#define GRE_IS_ROUTING(f)	((f) & GRE_ROUTING)
50+#define GRE_IS_KEY(f)		((f) & GRE_KEY)
51+#define GRE_IS_SEQ(f)		((f) & GRE_SEQ)
52+#define GRE_IS_STRICT(f)	((f) & GRE_STRICT)
53+#define GRE_IS_REC(f)		((f) & GRE_REC)
54+#define GRE_IS_ACK(f)		((f) & GRE_ACK)
55+
56+#define GRE_VERSION_0		__cpu_to_be16(0x0000)
57+#define GRE_VERSION_1		__cpu_to_be16(0x0001)
58+#define GRE_PROTO_PPP		__cpu_to_be16(0x880b)
59+#define GRE_PPTP_KEY_MASK	__cpu_to_be32(0xffff)
60+
61+struct ip_tunnel_parm {
62+	char			name[IFNAMSIZ];
63+	int			link;
64+	__be16			i_flags;
65+	__be16			o_flags;
66+	__be32			i_key;
67+	__be32			o_key;
68+	struct iphdr		iph;
69+};
70+
71+enum {
72+	IFLA_IPTUN_UNSPEC,
73+	IFLA_IPTUN_LINK,
74+	IFLA_IPTUN_LOCAL,
75+	IFLA_IPTUN_REMOTE,
76+	IFLA_IPTUN_TTL,
77+	IFLA_IPTUN_TOS,
78+	IFLA_IPTUN_ENCAP_LIMIT,
79+	IFLA_IPTUN_FLOWINFO,
80+	IFLA_IPTUN_FLAGS,
81+	IFLA_IPTUN_PROTO,
82+	IFLA_IPTUN_PMTUDISC,
83+	IFLA_IPTUN_6RD_PREFIX,
84+	IFLA_IPTUN_6RD_RELAY_PREFIX,
85+	IFLA_IPTUN_6RD_PREFIXLEN,
86+	IFLA_IPTUN_6RD_RELAY_PREFIXLEN,
87+	IFLA_IPTUN_ENCAP_TYPE,
88+	IFLA_IPTUN_ENCAP_FLAGS,
89+	IFLA_IPTUN_ENCAP_SPORT,
90+	IFLA_IPTUN_ENCAP_DPORT,
91+	IFLA_IPTUN_COLLECT_METADATA,
92+	IFLA_IPTUN_FWMARK,
93+	__IFLA_IPTUN_MAX,
94+};
95+#define IFLA_IPTUN_MAX	(__IFLA_IPTUN_MAX - 1)
96+
97+enum tunnel_encap_types {
98+	TUNNEL_ENCAP_NONE,
99+	TUNNEL_ENCAP_FOU,
100+	TUNNEL_ENCAP_GUE,
101+	TUNNEL_ENCAP_MPLS,
102+};
103+
104+#define TUNNEL_ENCAP_FLAG_CSUM		(1<<0)
105+#define TUNNEL_ENCAP_FLAG_CSUM6		(1<<1)
106+#define TUNNEL_ENCAP_FLAG_REMCSUM	(1<<2)
107+
108+/* SIT-mode i_flags */
109+#define	SIT_ISATAP	0x0001
110+
111+struct ip_tunnel_prl {
112+	__be32			addr;
113+	__u16			flags;
114+	__u16			__reserved;
115+	__u32			datalen;
116+	__u32			__reserved2;
117+	/* data follows */
118+};
119+
120+/* PRL flags */
121+#define	PRL_DEFAULT		0x0001
122+
123+struct ip_tunnel_6rd {
124+	struct in6_addr		prefix;
125+	__be32			relay_prefix;
126+	__u16			prefixlen;
127+	__u16			relay_prefixlen;
128+};
129+
130+enum {
131+	IFLA_GRE_UNSPEC,
132+	IFLA_GRE_LINK,
133+	IFLA_GRE_IFLAGS,
134+	IFLA_GRE_OFLAGS,
135+	IFLA_GRE_IKEY,
136+	IFLA_GRE_OKEY,
137+	IFLA_GRE_LOCAL,
138+	IFLA_GRE_REMOTE,
139+	IFLA_GRE_TTL,
140+	IFLA_GRE_TOS,
141+	IFLA_GRE_PMTUDISC,
142+	IFLA_GRE_ENCAP_LIMIT,
143+	IFLA_GRE_FLOWINFO,
144+	IFLA_GRE_FLAGS,
145+	IFLA_GRE_ENCAP_TYPE,
146+	IFLA_GRE_ENCAP_FLAGS,
147+	IFLA_GRE_ENCAP_SPORT,
148+	IFLA_GRE_ENCAP_DPORT,
149+	IFLA_GRE_COLLECT_METADATA,
150+	IFLA_GRE_IGNORE_DF,
151+	IFLA_GRE_FWMARK,
152+	IFLA_GRE_ERSPAN_INDEX,
153+	IFLA_GRE_ERSPAN_VER,
154+	IFLA_GRE_ERSPAN_DIR,
155+	IFLA_GRE_ERSPAN_HWID,
156+	__IFLA_GRE_MAX,
157+};
158+
159+#define IFLA_GRE_MAX	(__IFLA_GRE_MAX - 1)
160+
161+/* VTI-mode i_flags */
162+#define VTI_ISVTI ((__be16)0x0001)
163+
164+enum {
165+	IFLA_VTI_UNSPEC,
166+	IFLA_VTI_LINK,
167+	IFLA_VTI_IKEY,
168+	IFLA_VTI_OKEY,
169+	IFLA_VTI_LOCAL,
170+	IFLA_VTI_REMOTE,
171+	IFLA_VTI_FWMARK,
172+	__IFLA_VTI_MAX,
173+};
174+
175+#define IFLA_VTI_MAX	(__IFLA_VTI_MAX - 1)
176+
177+/* Historically, tunnel flags have been defined as __be16 and now there are
178+ * no free bits left. It is strongly advised to switch the already existing
179+ * userspace code to the new *_BIT definitions from down below, as __be16
180+ * can't be simply cast to a wider type on LE systems. All new flags and
181+ * code must use *_BIT only.
182+ */
183+
184+#define TUNNEL_CSUM		__cpu_to_be16(0x01)
185+#define TUNNEL_ROUTING		__cpu_to_be16(0x02)
186+#define TUNNEL_KEY		__cpu_to_be16(0x04)
187+#define TUNNEL_SEQ		__cpu_to_be16(0x08)
188+#define TUNNEL_STRICT		__cpu_to_be16(0x10)
189+#define TUNNEL_REC		__cpu_to_be16(0x20)
190+#define TUNNEL_VERSION		__cpu_to_be16(0x40)
191+#define TUNNEL_NO_KEY		__cpu_to_be16(0x80)
192+#define TUNNEL_DONT_FRAGMENT    __cpu_to_be16(0x0100)
193+#define TUNNEL_OAM		__cpu_to_be16(0x0200)
194+#define TUNNEL_CRIT_OPT		__cpu_to_be16(0x0400)
195+#define TUNNEL_GENEVE_OPT	__cpu_to_be16(0x0800)
196+#define TUNNEL_VXLAN_OPT	__cpu_to_be16(0x1000)
197+#define TUNNEL_NOCACHE		__cpu_to_be16(0x2000)
198+#define TUNNEL_ERSPAN_OPT	__cpu_to_be16(0x4000)
199+#define TUNNEL_GTP_OPT		__cpu_to_be16(0x8000)
200+
201+#define TUNNEL_OPTIONS_PRESENT \
202+		(TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT | \
203+		TUNNEL_GTP_OPT)
204+
205+enum {
206+	IP_TUNNEL_CSUM_BIT		= 0U,
207+	IP_TUNNEL_ROUTING_BIT,
208+	IP_TUNNEL_KEY_BIT,
209+	IP_TUNNEL_SEQ_BIT,
210+	IP_TUNNEL_STRICT_BIT,
211+	IP_TUNNEL_REC_BIT,
212+	IP_TUNNEL_VERSION_BIT,
213+	IP_TUNNEL_NO_KEY_BIT,
214+	IP_TUNNEL_DONT_FRAGMENT_BIT,
215+	IP_TUNNEL_OAM_BIT,
216+	IP_TUNNEL_CRIT_OPT_BIT,
217+	IP_TUNNEL_GENEVE_OPT_BIT,	/* OPTIONS_PRESENT */
218+	IP_TUNNEL_VXLAN_OPT_BIT,	/* OPTIONS_PRESENT */
219+	IP_TUNNEL_NOCACHE_BIT,
220+	IP_TUNNEL_ERSPAN_OPT_BIT,	/* OPTIONS_PRESENT */
221+	IP_TUNNEL_GTP_OPT_BIT,		/* OPTIONS_PRESENT */
222+
223+	IP_TUNNEL_VTI_BIT,
224+	IP_TUNNEL_SIT_ISATAP_BIT	= IP_TUNNEL_VTI_BIT,
225+
226+	/* Flags starting from here are not available via the old UAPI */
227+	IP_TUNNEL_PFCP_OPT_BIT,		/* OPTIONS_PRESENT */
228+
229+	__IP_TUNNEL_FLAG_NUM,
230+};
231+
232+#endif /* _IF_TUNNEL_H_ */
233--- /dev/null
234+++ b/alpine-overlay/scsi/scsi.h
235@@ -0,0 +1,150 @@
236+#ifndef _SCSI_SCSI_H
237+#define _SCSI_SCSI_H
238+
239+#define TEST_UNIT_READY 0x00
240+#define REZERO_UNIT 0x01
241+#define REQUEST_SENSE 0x03
242+#define FORMAT_UNIT 0x04
243+#define READ_BLOCK_LIMITS 0x05
244+#define REASSIGN_BLOCKS 0x07
245+#define READ_6 0x08
246+#define WRITE_6 0x0a
247+#define SEEK_6 0x0b
248+#define READ_REVERSE 0x0f
249+#define WRITE_FILEMARKS 0x10
250+#define SPACE 0x11
251+#define INQUIRY 0x12
252+#define RECOVER_BUFFERED_DATA 0x14
253+#define MODE_SELECT 0x15
254+#define RESERVE 0x16
255+#define RELEASE 0x17
256+#define COPY 0x18
257+#define ERASE 0x19
258+#define MODE_SENSE 0x1a
259+#define START_STOP 0x1b
260+#define RECEIVE_DIAGNOSTIC 0x1c
261+#define SEND_DIAGNOSTIC 0x1d
262+#define ALLOW_MEDIUM_REMOVAL 0x1e
263+#define SET_WINDOW 0x24
264+#define READ_CAPACITY 0x25
265+#define READ_10 0x28
266+#define WRITE_10 0x2a
267+#define SEEK_10 0x2b
268+#define WRITE_VERIFY 0x2e
269+#define VERIFY 0x2f
270+#define SEARCH_HIGH 0x30
271+#define SEARCH_EQUAL 0x31
272+#define SEARCH_LOW 0x32
273+#define SET_LIMITS 0x33
274+#define PRE_FETCH 0x34
275+#define READ_POSITION 0x34
276+#define SYNCHRONIZE_CACHE 0x35
277+#define LOCK_UNLOCK_CACHE 0x36
278+#define READ_DEFECT_DATA 0x37
279+#define MEDIUM_SCAN 0x38
280+#define COMPARE 0x39
281+#define COPY_VERIFY 0x3a
282+#define WRITE_BUFFER 0x3b
283+#define READ_BUFFER 0x3c
284+#define UPDATE_BLOCK 0x3d
285+#define READ_LONG 0x3e
286+#define WRITE_LONG 0x3f
287+#define CHANGE_DEFINITION 0x40
288+#define WRITE_SAME 0x41
289+#define READ_TOC 0x43
290+#define LOG_SELECT 0x4c
291+#define LOG_SENSE 0x4d
292+#define MODE_SELECT_10 0x55
293+#define RESERVE_10 0x56
294+#define RELEASE_10 0x57
295+#define MODE_SENSE_10 0x5a
296+#define PERSISTENT_RESERVE_IN 0x5e
297+#define PERSISTENT_RESERVE_OUT 0x5f
298+#define MOVE_MEDIUM 0xa5
299+#define READ_12 0xa8
300+#define WRITE_12 0xaa
301+#define WRITE_VERIFY_12 0xae
302+#define SEARCH_HIGH_12 0xb0
303+#define SEARCH_EQUAL_12 0xb1
304+#define SEARCH_LOW_12 0xb2
305+#define READ_ELEMENT_STATUS 0xb8
306+#define SEND_VOLUME_TAG 0xb6
307+#define WRITE_LONG_2 0xea
308+#define GOOD 0x00
309+#define CHECK_CONDITION 0x01
310+#define CONDITION_GOOD 0x02
311+#define BUSY 0x04
312+#define INTERMEDIATE_GOOD 0x08
313+#define INTERMEDIATE_C_GOOD 0x0a
314+#define RESERVATION_CONFLICT 0x0c
315+#define COMMAND_TERMINATED 0x11
316+#define QUEUE_FULL 0x14
317+#define STATUS_MASK 0x3e
318+#define NO_SENSE 0x00
319+#define RECOVERED_ERROR 0x01
320+#define NOT_READY 0x02
321+#define MEDIUM_ERROR 0x03
322+#define HARDWARE_ERROR 0x04
323+#define ILLEGAL_REQUEST 0x05
324+#define UNIT_ATTENTION 0x06
325+#define DATA_PROTECT 0x07
326+#define BLANK_CHECK 0x08
327+#define COPY_ABORTED 0x0a
328+#define ABORTED_COMMAND 0x0b
329+#define VOLUME_OVERFLOW 0x0d
330+#define MISCOMPARE 0x0e
331+#define TYPE_DISK 0x00
332+#define TYPE_TAPE 0x01
333+#define TYPE_PROCESSOR 0x03
334+#define TYPE_WORM 0x04
335+#define TYPE_ROM 0x05
336+#define TYPE_SCANNER 0x06
337+#define TYPE_MOD 0x07
338+#define TYPE_MEDIUM_CHANGER 0x08
339+#define TYPE_ENCLOSURE 0x0d
340+#define TYPE_NO_LUN 0x7f
341+#define COMMAND_COMPLETE 0x00
342+#define EXTENDED_MESSAGE 0x01
343+#define EXTENDED_MODIFY_DATA_POINTER 0x00
344+#define EXTENDED_SDTR 0x01
345+#define EXTENDED_EXTENDED_IDENTIFY 0x02
346+#define EXTENDED_WDTR 0x03
347+#define SAVE_POINTERS 0x02
348+#define RESTORE_POINTERS 0x03
349+#define DISCONNECT 0x04
350+#define INITIATOR_ERROR 0x05
351+#define ABORT 0x06
352+#define MESSAGE_REJECT 0x07
353+#define NOP 0x08
354+#define MSG_PARITY_ERROR 0x09
355+#define LINKED_CMD_COMPLETE 0x0a
356+#define LINKED_FLG_CMD_COMPLETE 0x0b
357+#define BUS_DEVICE_RESET 0x0c
358+#define INITIATE_RECOVERY 0x0f
359+#define RELEASE_RECOVERY 0x10
360+#define SIMPLE_QUEUE_TAG 0x20
361+#define HEAD_OF_QUEUE_TAG 0x21
362+#define ORDERED_QUEUE_TAG 0x22
363+#define SCSI_IOCTL_GET_IDLUN 0x5382
364+#define SCSI_IOCTL_TAGGED_ENABLE 0x5383
365+#define SCSI_IOCTL_TAGGED_DISABLE 0x5384
366+#define SCSI_IOCTL_PROBE_HOST 0x5385
367+#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
368+
369+struct ccs_modesel_head {
370+	unsigned char _r1;
371+	unsigned char medium;
372+	unsigned char _r2;
373+	unsigned char block_desc_length;
374+	unsigned char density;
375+	unsigned char number_blocks_hi;
376+	unsigned char number_blocks_med;
377+	unsigned char number_blocks_lo;
378+	unsigned char _r3;
379+	unsigned char block_length_hi;
380+	unsigned char block_length_med;
381+	unsigned char block_length_lo;
382+};
383+
384+#endif
385+
386--- /dev/null
387+++ b/alpine-overlay/scsi/scsi_ioctl.h
388@@ -0,0 +1,11 @@
389+#ifndef _SCSI_IOCTL_H
390+#define _SCSI_IOCTL_H
391+#define SCSI_IOCTL_SEND_COMMAND 1
392+#define SCSI_IOCTL_TEST_UNIT_READY 2
393+#define SCSI_IOCTL_BENCHMARK_COMMAND 3
394+#define SCSI_IOCTL_SYNC 4
395+#define SCSI_IOCTL_START_UNIT 5
396+#define SCSI_IOCTL_STOP_UNIT 6
397+#define SCSI_IOCTL_DOORLOCK 0x5380
398+#define SCSI_IOCTL_DOORUNLOCK 0x5381
399+#endif
400--- /dev/null
401+++ b/alpine-overlay/scsi/sg.h
402@@ -0,0 +1,129 @@
403+#ifndef _SCSI_SG_H
404+#define _SCSI_SG_H
405+
406+#define SG_DXFER_NONE -1
407+#define SG_DXFER_TO_DEV -2
408+#define SG_DXFER_FROM_DEV -3
409+#define SG_DXFER_TO_FROM_DEV -4
410+#define SG_FLAG_DIRECT_IO 1
411+#define SG_FLAG_LUN_INHIBIT 2
412+#define SG_FLAG_NO_DXFER 0x10000
413+#define SG_INFO_OK_MASK 0x1
414+#define SG_INFO_OK 0x0
415+#define SG_INFO_CHECK 0x1
416+#define SG_INFO_DIRECT_IO_MASK 0x6
417+#define SG_INFO_INDIRECT_IO 0x0
418+#define SG_INFO_DIRECT_IO 0x2
419+#define SG_INFO_MIXED_IO 0x4
420+#define SG_EMULATED_HOST 0x2203
421+#define SG_SET_TRANSFORM 0x2204
422+#define SG_GET_TRANSFORM 0x2205
423+#define SG_SET_RESERVED_SIZE 0x2275
424+#define SG_GET_RESERVED_SIZE 0x2272
425+#define SG_GET_SCSI_ID 0x2276
426+#define SG_SET_FORCE_LOW_DMA 0x2279
427+#define SG_GET_LOW_DMA 0x227a
428+#define SG_SET_FORCE_PACK_ID 0x227b
429+#define SG_GET_PACK_ID 0x227c
430+#define SG_GET_NUM_WAITING 0x227d
431+#define SG_GET_SG_TABLESIZE 0x227F
432+#define SG_GET_VERSION_NUM 0x2282
433+#define SG_SCSI_RESET 0x2284
434+#define SG_SCSI_RESET_NOTHING 0
435+#define SG_SCSI_RESET_DEVICE 1
436+#define SG_SCSI_RESET_BUS 2
437+#define SG_SCSI_RESET_HOST 3
438+#define SG_IO 0x2285
439+#define SG_GET_REQUEST_TABLE 0x2286
440+#define SG_SET_KEEP_ORPHAN 0x2287
441+#define SG_GET_KEEP_ORPHAN 0x2288
442+#define SG_SCATTER_SZ (8 * 4096)
443+#define SG_DEFAULT_RETRIES 1
444+#define SG_DEF_FORCE_LOW_DMA 0
445+#define SG_DEF_FORCE_PACK_ID 0
446+#define SG_DEF_KEEP_ORPHAN 0
447+#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ
448+#define SG_MAX_QUEUE 16
449+#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE
450+#define SG_MAX_SENSE 16
451+#define SG_SET_TIMEOUT 0x2201
452+#define SG_GET_TIMEOUT 0x2202
453+#define SG_GET_COMMAND_Q 0x2270
454+#define SG_SET_COMMAND_Q 0x2271
455+#define SG_SET_DEBUG 0x227e
456+#define SG_NEXT_CMD_LEN 0x2283
457+#define SG_DEFAULT_TIMEOUT (60*100) /* 60*HZ */
458+#define SG_DEF_COMMAND_Q 0
459+#define SG_DEF_UNDERRUN_FLAG 0
460+
461+typedef struct sg_iovec {
462+	void *iov_base;
463+	unsigned long iov_len;
464+} sg_iovec_t;
465+
466+typedef struct sg_io_hdr { 
467+	int interface_id; 
468+	int dxfer_direction; 
469+	unsigned char cmd_len;
470+	unsigned char mx_sb_len;
471+	unsigned short iovec_count;
472+	unsigned dxfer_len;
473+	void *dxferp;
474+	unsigned char *cmdp;
475+	unsigned char *sbp;
476+	unsigned timeout;
477+	unsigned flags;
478+	int pack_id;
479+	void *usr_ptr;
480+	unsigned char status;
481+	unsigned char masked_status;
482+	unsigned char msg_status;
483+	unsigned char sb_len_wr;
484+	unsigned short host_status;
485+	unsigned short driver_status;
486+	int resid; 
487+	unsigned int duration;
488+	unsigned int info;
489+} sg_io_hdr_t;
490+
491+struct sg_scsi_id {
492+	int host_no;
493+	int channel;
494+	int scsi_id;
495+	int lun;
496+	int scsi_type;
497+	short h_cmd_per_lun;
498+	short d_queue_depth;
499+	int unused[2];
500+};
501+
502+typedef struct sg_req_info {
503+	char req_state;
504+	char orphan;
505+	char sg_io_owned;
506+	char problem;
507+	int pack_id;
508+	void *usr_ptr;
509+	unsigned duration; 
510+	int unused; 
511+} sg_req_info_t;
512+
513+typedef struct sg_io_hdr Sg_io_hdr;
514+typedef struct sg_io_vec Sg_io_vec;
515+typedef struct sg_scsi_id Sg_scsi_id;
516+typedef struct sg_req_info Sg_req_info;
517+
518+struct sg_header {
519+	int pack_len;
520+	int reply_len;
521+	int pack_id;
522+	int result;
523+	unsigned twelve_byte:1;
524+	unsigned target_status:5;
525+	unsigned host_status:8;
526+	unsigned driver_status:8;
527+	unsigned other_flags:10;
528+	unsigned char sense_buffer[SG_MAX_SENSE];
529+};
530+
531+#endif