3 #endif /* HAVE_CONFIG_H */
6 #include <atalk/adouble.h>
8 int ad_setdate(struct adouble *ad,
9 unsigned int dateoff, u_int32_t date)
11 int xlate = (dateoff & AD_DATE_UNIX);
13 dateoff &= AD_DATE_MASK;
15 date = AD_DATE_FROM_UNIX(date);
17 if (ad->ad_version == AD_VERSION1) {
19 if (!ad_getentryoff(ad, ADEID_FILEI))
22 if (dateoff > AD_DATE_BACKUP)
24 memcpy(ad_entry(ad, ADEID_FILEI) + dateoff, &date, sizeof(date));
26 } else if (ad->ad_version == AD_VERSION2) {
27 if (!ad_getentryoff(ad, ADEID_FILEDATESI))
30 if (dateoff > AD_DATE_ACCESS)
32 memcpy(ad_entry(ad, ADEID_FILEDATESI) + dateoff, &date, sizeof(date));
40 int ad_getdate(const struct adouble *ad,
41 unsigned int dateoff, u_int32_t *date)
43 int xlate = (dateoff & AD_DATE_UNIX);
45 dateoff &= AD_DATE_MASK;
46 if (ad->ad_version == AD_VERSION1) {
47 if (dateoff > AD_DATE_BACKUP)
49 if (!ad_getentryoff(ad, ADEID_FILEI))
51 memcpy(date, ad_entry(ad, ADEID_FILEI) + dateoff, sizeof(u_int32_t));
53 } else if (ad->ad_version == AD_VERSION2) {
54 if (!ad_getentryoff(ad, ADEID_FILEDATESI))
57 if (dateoff > AD_DATE_ACCESS)
59 memcpy(date, ad_entry(ad, ADEID_FILEDATESI) + dateoff, sizeof(u_int32_t));
65 *date = AD_DATE_TO_UNIX(*date);