feat: (iso9660) directory read support
[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 }