1
2
3
4
5
6
7
8
9
10
11
12 #ifndef _TAPE390_H
13 #define _TAPE390_H
14
15 #define TAPE390_DISPLAY _IOW('d', 1, struct display_struct)
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 typedef struct display_struct {
34 char cntrl;
35 char message1[8];
36 char message2[8];
37 } display_struct;
38
39
40
41
42
43 struct tape390_crypt_info {
44 char capability;
45 char status;
46 char medium_status;
47 } __attribute__ ((packed));
48
49
50
51 #define TAPE390_CRYPT_SUPPORTED_MASK 0x01
52 #define TAPE390_CRYPT_SUPPORTED(x) \
53 ((x.capability & TAPE390_CRYPT_SUPPORTED_MASK))
54
55
56 #define TAPE390_CRYPT_ON_MASK 0x01
57 #define TAPE390_CRYPT_ON(x) (((x.status) & TAPE390_CRYPT_ON_MASK))
58
59
60 #define TAPE390_MEDIUM_LOADED_MASK 0x01
61 #define TAPE390_MEDIUM_ENCRYPTED_MASK 0x02
62 #define TAPE390_MEDIUM_ENCRYPTED(x) \
63 (((x.medium_status) & TAPE390_MEDIUM_ENCRYPTED_MASK))
64 #define TAPE390_MEDIUM_LOADED(x) \
65 (((x.medium_status) & TAPE390_MEDIUM_LOADED_MASK))
66
67
68
69
70
71 #define TAPE390_CRYPT_SET _IOW('d', 2, struct tape390_crypt_info)
72
73
74
75
76 #define TAPE390_CRYPT_QUERY _IOR('d', 3, struct tape390_crypt_info)
77
78
79 #define TAPE390_KEKL_TYPE_NONE 0
80 #define TAPE390_KEKL_TYPE_LABEL 1
81 #define TAPE390_KEKL_TYPE_HASH 2
82
83 struct tape390_kekl {
84 unsigned char type;
85 unsigned char type_on_tape;
86 char label[65];
87 } __attribute__ ((packed));
88
89 struct tape390_kekl_pair {
90 struct tape390_kekl kekl[2];
91 } __attribute__ ((packed));
92
93
94
95
96 #define TAPE390_KEKL_SET _IOW('d', 4, struct tape390_kekl_pair)
97
98
99
100
101 #define TAPE390_KEKL_QUERY _IOR('d', 5, struct tape390_kekl_pair)
102
103 #endif