#include struct iso_drecord* iso9660_get_drecord(struct iso_var_mdu* drecord_mdu) { if (drecord_mdu->len <= sizeof(struct iso_drecord)) { return NULL; } return (struct iso_drecord*)drecord_mdu->content; } #define FOUR_DIGIT(x) (x[0] + x[1] * 10 + x[2] * 100 + x[3] * 1000) #define TWO_DIGIT(x) (x[0] + x[1] * 10) time_t iso9660_dt2unix(struct iso_datetime* isodt) { return time_tounix(FOUR_DIGIT(isodt->year), TWO_DIGIT(isodt->month), TWO_DIGIT(isodt->day), TWO_DIGIT(isodt->hour), TWO_DIGIT(isodt->min), TWO_DIGIT(isodt->sec)); }