Merge branch 'master' into prog-loader
[lunaix-os.git] / lunaix-os / kernel / fs / iso9660 / utils.c
1 #include <lunaix/fs/iso9660.h>
2
3 struct iso_drecord*
4 iso9660_get_drecord(struct iso_var_mdu* drecord_mdu)
5 {
6     if (drecord_mdu->len <= sizeof(struct iso_drecord)) {
7         return NULL;
8     }
9     return (struct iso_drecord*)drecord_mdu->content;
10 }
11
12 #define FOUR_DIGIT(x) (x[0] + x[1] * 10 + x[2] * 100 + x[3] * 1000)
13 #define TWO_DIGIT(x) (x[0] + x[1] * 10)
14
15 time_t
16 iso9660_dt2unix(struct iso_datetime* isodt)
17 {
18     return time_tounix(FOUR_DIGIT(isodt->year),
19                        TWO_DIGIT(isodt->month),
20                        TWO_DIGIT(isodt->day),
21                        TWO_DIGIT(isodt->hour),
22                        TWO_DIGIT(isodt->min),
23                        TWO_DIGIT(isodt->sec));
24 }
25
26 time_t
27 iso9660_dt22unix(struct iso_datetime2* isodt2)
28 {
29     return time_tounix(isodt2->year + 1900,
30                        isodt2->month,
31                        isodt2->day,
32                        isodt2->hour,
33                        isodt2->min,
34                        isodt2->sec);
35 }