xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

hfsplus_classes_test.c
Go to the documentation of this file.
1 /*
2 cc -g -o demo/classes libisofs/hfsplus_classes_test.c
3 */
4 #include <stdint.h>
5 #include <string.h>
6 #include <stdio.h>
7 
8 #ifdef HAVE_CONFIG_H
9 #include "../config.h"
10 #endif
11 
12 #include "hfsplus.h"
13 
14 /* ======== Copy of original class pages : hfsplus_class_pages_old ======== */
15 
16 /* Based on Unicode 3.2.0. */
17 
18 static uint16_t page03[256] = {
19  [0x00] = 0x230,
20  [0x01] = 0x230,
21  [0x02] = 0x230,
22  [0x03] = 0x230,
23  [0x04] = 0x230,
24  [0x05] = 0x230,
25  [0x06] = 0x230,
26  [0x07] = 0x230,
27  [0x08] = 0x230,
28  [0x09] = 0x230,
29  [0x0a] = 0x230,
30  [0x0b] = 0x230,
31  [0x0c] = 0x230,
32  [0x0d] = 0x230,
33  [0x0e] = 0x230,
34  [0x0f] = 0x230,
35  [0x10] = 0x230,
36  [0x11] = 0x230,
37  [0x12] = 0x230,
38  [0x13] = 0x230,
39  [0x14] = 0x230,
40  [0x15] = 0x232,
41  [0x16] = 0x220,
42  [0x17] = 0x220,
43  [0x18] = 0x220,
44  [0x19] = 0x220,
45  [0x1a] = 0x232,
46  [0x1b] = 0x216,
47  [0x1c] = 0x220,
48  [0x1d] = 0x220,
49  [0x1e] = 0x220,
50  [0x1f] = 0x220,
51  [0x20] = 0x220,
52  [0x21] = 0x202,
53  [0x22] = 0x202,
54  [0x23] = 0x220,
55  [0x24] = 0x220,
56  [0x25] = 0x220,
57  [0x26] = 0x220,
58  [0x27] = 0x202,
59  [0x28] = 0x202,
60  [0x29] = 0x220,
61  [0x2a] = 0x220,
62  [0x2b] = 0x220,
63  [0x2c] = 0x220,
64  [0x2d] = 0x220,
65  [0x2e] = 0x220,
66  [0x2f] = 0x220,
67  [0x30] = 0x220,
68  [0x31] = 0x220,
69  [0x32] = 0x220,
70  [0x33] = 0x220,
71  [0x34] = 0x1,
72  [0x35] = 0x1,
73  [0x36] = 0x1,
74  [0x37] = 0x1,
75  [0x38] = 0x1,
76  [0x39] = 0x220,
77  [0x3a] = 0x220,
78  [0x3b] = 0x220,
79  [0x3c] = 0x220,
80  [0x3d] = 0x230,
81  [0x3e] = 0x230,
82  [0x3f] = 0x230,
83  [0x40] = 0x230,
84  [0x41] = 0x230,
85  [0x42] = 0x230,
86  [0x43] = 0x230,
87  [0x44] = 0x230,
88  [0x45] = 0x240,
89  [0x46] = 0x230,
90  [0x47] = 0x220,
91  [0x48] = 0x220,
92  [0x49] = 0x220,
93  [0x4a] = 0x230,
94  [0x4b] = 0x230,
95  [0x4c] = 0x230,
96  [0x4d] = 0x220,
97  [0x4e] = 0x220,
98  [0x60] = 0x234,
99  [0x61] = 0x234,
100  [0x62] = 0x233,
101  [0x63] = 0x230,
102  [0x64] = 0x230,
103  [0x65] = 0x230,
104  [0x66] = 0x230,
105  [0x67] = 0x230,
106  [0x68] = 0x230,
107  [0x69] = 0x230,
108  [0x6a] = 0x230,
109  [0x6b] = 0x230,
110  [0x6c] = 0x230,
111  [0x6d] = 0x230,
112  [0x6e] = 0x230,
113  [0x6f] = 0x230,
114 };
115 
116 static uint16_t page04[256] = {
117  [0x83] = 0x230,
118  [0x84] = 0x230,
119  [0x85] = 0x230,
120  [0x86] = 0x230,
121 };
122 
123 static uint16_t page05[256] = {
124  [0x91] = 0x220,
125  [0x92] = 0x230,
126  [0x93] = 0x230,
127  [0x94] = 0x230,
128  [0x95] = 0x230,
129  [0x96] = 0x220,
130  [0x97] = 0x230,
131  [0x98] = 0x230,
132  [0x99] = 0x230,
133  [0x9a] = 0x222,
134  [0x9b] = 0x220,
135  [0x9c] = 0x230,
136  [0x9d] = 0x230,
137  [0x9e] = 0x230,
138  [0x9f] = 0x230,
139  [0xa0] = 0x230,
140  [0xa1] = 0x230,
141  [0xa3] = 0x220,
142  [0xa4] = 0x220,
143  [0xa5] = 0x220,
144  [0xa6] = 0x220,
145  [0xa7] = 0x220,
146  [0xa8] = 0x230,
147  [0xa9] = 0x230,
148  [0xaa] = 0x220,
149  [0xab] = 0x230,
150  [0xac] = 0x230,
151  [0xad] = 0x222,
152  [0xae] = 0x228,
153  [0xaf] = 0x230,
154  [0xb0] = 0x10,
155  [0xb1] = 0x11,
156  [0xb2] = 0x12,
157  [0xb3] = 0x13,
158  [0xb4] = 0x14,
159  [0xb5] = 0x15,
160  [0xb6] = 0x16,
161  [0xb7] = 0x17,
162  [0xb8] = 0x18,
163  [0xb9] = 0x19,
164  [0xbb] = 0x20,
165  [0xbc] = 0x21,
166  [0xbd] = 0x22,
167  [0xbf] = 0x23,
168  [0xc1] = 0x24,
169  [0xc2] = 0x25,
170  [0xc4] = 0x230,
171 };
172 
173 static uint16_t page06[256] = {
174  [0x4b] = 0x27,
175  [0x4c] = 0x28,
176  [0x4d] = 0x29,
177  [0x4e] = 0x30,
178  [0x4f] = 0x31,
179  [0x50] = 0x32,
180  [0x51] = 0x33,
181  [0x52] = 0x34,
182  [0x53] = 0x230,
183  [0x54] = 0x230,
184  [0x55] = 0x220,
185  [0x70] = 0x35,
186  [0xd6] = 0x230,
187  [0xd7] = 0x230,
188  [0xd8] = 0x230,
189  [0xd9] = 0x230,
190  [0xda] = 0x230,
191  [0xdb] = 0x230,
192  [0xdc] = 0x230,
193  [0xdf] = 0x230,
194  [0xe0] = 0x230,
195  [0xe1] = 0x230,
196  [0xe2] = 0x230,
197  [0xe3] = 0x220,
198  [0xe4] = 0x230,
199  [0xe7] = 0x230,
200  [0xe8] = 0x230,
201  [0xea] = 0x220,
202  [0xeb] = 0x230,
203  [0xec] = 0x230,
204  [0xed] = 0x220,
205 };
206 
207 static uint16_t page07[256] = {
208  [0x11] = 0x36,
209  [0x30] = 0x230,
210  [0x31] = 0x220,
211  [0x32] = 0x230,
212  [0x33] = 0x230,
213  [0x34] = 0x220,
214  [0x35] = 0x230,
215  [0x36] = 0x230,
216  [0x37] = 0x220,
217  [0x38] = 0x220,
218  [0x39] = 0x220,
219  [0x3a] = 0x230,
220  [0x3b] = 0x220,
221  [0x3c] = 0x220,
222  [0x3d] = 0x230,
223  [0x3e] = 0x220,
224  [0x3f] = 0x230,
225  [0x40] = 0x230,
226  [0x41] = 0x230,
227  [0x42] = 0x220,
228  [0x43] = 0x230,
229  [0x44] = 0x220,
230  [0x45] = 0x230,
231  [0x46] = 0x220,
232  [0x47] = 0x230,
233  [0x48] = 0x220,
234  [0x49] = 0x230,
235  [0x4a] = 0x230,
236 };
237 
238 static uint16_t page09[256] = {
239  [0x3c] = 0x7,
240  [0x4d] = 0x9,
241  [0x51] = 0x230,
242  [0x52] = 0x220,
243  [0x53] = 0x230,
244  [0x54] = 0x230,
245  [0xbc] = 0x7,
246  [0xcd] = 0x9,
247 };
248 
249 static uint16_t page0a[256] = {
250  [0x3c] = 0x7,
251  [0x4d] = 0x9,
252  [0xbc] = 0x7,
253  [0xcd] = 0x9,
254 };
255 
256 static uint16_t page0b[256] = {
257  [0x3c] = 0x7,
258  [0x4d] = 0x9,
259  [0xcd] = 0x9,
260 };
261 
262 static uint16_t page0c[256] = {
263  [0x4d] = 0x9,
264  [0x55] = 0x84,
265  [0x56] = 0x91,
266  [0xcd] = 0x9,
267 };
268 
269 static uint16_t page0d[256] = {
270  [0x4d] = 0x9,
271  [0xca] = 0x9,
272 };
273 
274 static uint16_t page0e[256] = {
275  [0x38] = 0x103,
276  [0x39] = 0x103,
277  [0x3a] = 0x9,
278  [0x48] = 0x107,
279  [0x49] = 0x107,
280  [0x4a] = 0x107,
281  [0x4b] = 0x107,
282  [0xb8] = 0x118,
283  [0xb9] = 0x118,
284  [0xc8] = 0x122,
285  [0xc9] = 0x122,
286  [0xca] = 0x122,
287  [0xcb] = 0x122,
288 };
289 
290 static uint16_t page0f[256] = {
291  [0x18] = 0x220,
292  [0x19] = 0x220,
293  [0x35] = 0x220,
294  [0x37] = 0x220,
295  [0x39] = 0x216,
296  [0x71] = 0x129,
297  [0x72] = 0x130,
298  [0x74] = 0x132,
299  [0x7a] = 0x130,
300  [0x7b] = 0x130,
301  [0x7c] = 0x130,
302  [0x7d] = 0x130,
303  [0x80] = 0x130,
304  [0x82] = 0x230,
305  [0x83] = 0x230,
306  [0x84] = 0x9,
307  [0x86] = 0x230,
308  [0x87] = 0x230,
309  [0xc6] = 0x220,
310 };
311 
312 static uint16_t page10[256] = {
313  [0x37] = 0x7,
314  [0x39] = 0x9,
315 };
316 
317 static uint16_t page17[256] = {
318  [0x14] = 0x9,
319  [0x34] = 0x9,
320  [0xd2] = 0x9,
321 };
322 
323 static uint16_t page18[256] = {
324  [0xa9] = 0x228,
325 };
326 
327 static uint16_t page20[256] = {
328  [0xd0] = 0x230,
329  [0xd1] = 0x230,
330  [0xd2] = 0x1,
331  [0xd3] = 0x1,
332  [0xd4] = 0x230,
333  [0xd5] = 0x230,
334  [0xd6] = 0x230,
335  [0xd7] = 0x230,
336  [0xd8] = 0x1,
337  [0xd9] = 0x1,
338  [0xda] = 0x1,
339  [0xdb] = 0x230,
340  [0xdc] = 0x230,
341  [0xe1] = 0x230,
342  [0xe5] = 0x1,
343  [0xe6] = 0x1,
344  [0xe7] = 0x230,
345  [0xe8] = 0x220,
346  [0xe9] = 0x230,
347  [0xea] = 0x1,
348 };
349 
350 static uint16_t page30[256] = {
351  [0x2a] = 0x218,
352  [0x2b] = 0x228,
353  [0x2c] = 0x232,
354  [0x2d] = 0x222,
355  [0x2e] = 0x224,
356  [0x2f] = 0x224,
357  [0x99] = 0x8,
358  [0x9a] = 0x8,
359 };
360 
361 static uint16_t pagefb[256] = {
362  [0x1e] = 0x26,
363 };
364 
365 static uint16_t pagefe[256] = {
366  [0x20] = 0x230,
367  [0x21] = 0x230,
368  [0x22] = 0x230,
369  [0x23] = 0x230,
370 };
371 
372 const uint16_t *hfsplus_class_pages_old[256] = {
373  [0x03] = page03,
374  [0x04] = page04,
375  [0x05] = page05,
376  [0x06] = page06,
377  [0x07] = page07,
378  [0x09] = page09,
379  [0x0a] = page0a,
380  [0x0b] = page0b,
381  [0x0c] = page0c,
382  [0x0d] = page0d,
383  [0x0e] = page0e,
384  [0x0f] = page0f,
385  [0x10] = page10,
386  [0x17] = page17,
387  [0x18] = page18,
388  [0x20] = page20,
389  [0x30] = page30,
390  [0xfb] = pagefb,
391  [0xfe] = pagefe,
392 };
393 
394 
395 /* ================================ Test Setup =========================== */
396 
397 /* The new implementation */
398 #include "hfsplus_classes_ts.c"
399 
401 {
402  int i, j;
403 
404  for (i = 0; i < 256; i++) {
405  if (hfsplus_class_pages_old[i] == NULL) {
406  if (hfsplus_class_pages[i] == NULL)
407  continue;
408  fprintf(stderr, "DIFF : i= %d , ts != NULL\n", i);
409  return 0;
410  } else if (hfsplus_class_pages[i] == NULL) {
411  fprintf(stderr, "DIFF : i= %d , ts == NULL\n", i);
412  return 0;
413  }
414  for (j = 0; j < 256; j++)
415  if (hfsplus_class_pages_old[i][j] !=
416  hfsplus_class_pages[i][j]) {
417  fprintf(stderr, "DIFF : i= %d , j= %d : %4.4x !+ %4.4x\n",
418  i, j, hfsplus_class_pages[i][j],
419  hfsplus_class_pages[i][j]);
420  return 0;
421  }
422  }
423  return 1;
424 }
425 
427 {
428 
430 
431  /* <<< intentional deviations */
432  /* hfsplus_class_pages[3][1] = 0xffff; */
433  /* hfsplus_class_pages_old[3] = NULL; */
434 
436 
437  exit(0);
438 }
439 
440 
uint16_t * hfsplus_class_pages[256]
void make_hfsplus_class_pages()
static uint16_t page18[256]
static uint16_t page30[256]
static uint16_t page0d[256]
const uint16_t * hfsplus_class_pages_old[256]
static uint16_t page0a[256]
static uint16_t page0f[256]
static uint16_t page09[256]
static uint16_t page0c[256]
static uint16_t pagefb[256]
static uint16_t page05[256]
static uint16_t page17[256]
static uint16_t page10[256]
static uint16_t page07[256]
static uint16_t page04[256]
static uint16_t pagefe[256]
static uint16_t page0b[256]
static uint16_t page06[256]
static int compare_class_pages()
static uint16_t page0e[256]
static uint16_t page03[256]
static uint16_t page20[256]