5 #include <atalk/adouble.h>
7 int ad_setdate(const struct adouble *ad,
8 unsigned int dateoff, u_int32_t date)
10 int xlate = (dateoff & AD_DATE_UNIX);
12 dateoff &= AD_DATE_MASK;
14 date = AD_DATE_FROM_UNIX(date);
16 if (ad->ad_version == AD_VERSION1) {
17 if (dateoff > AD_DATE_BACKUP)
19 memcpy(ad_entry(ad, ADEID_FILEI) + dateoff, &date, sizeof(date));
21 } else if (ad->ad_version == AD_VERSION2) {
22 if (dateoff > AD_DATE_ACCESS)
24 memcpy(ad_entry(ad, ADEID_FILEDATESI) + dateoff, &date, sizeof(date));
32 int ad_getdate(const struct adouble *ad,
33 unsigned int dateoff, u_int32_t *date)
35 int xlate = (dateoff & AD_DATE_UNIX);
37 dateoff &= AD_DATE_MASK;
38 if (ad->ad_version == AD_VERSION1) {
39 if (dateoff > AD_DATE_BACKUP)
41 memcpy(date, ad_entry(ad, ADEID_FILEI) + dateoff, sizeof(u_int32_t));
43 } else if (ad->ad_version == AD_VERSION2) {
44 if (dateoff > AD_DATE_ACCESS)
46 memcpy(date, ad_entry(ad, ADEID_FILEDATESI) + dateoff, sizeof(u_int32_t));
52 *date = AD_DATE_TO_UNIX(*date);