2
* $Id: ad_date.c,v 1.3 2001/06/29 14:14:46 rufustfirefly Exp $
7
#endif /* HAVE_CONFIG_H */
13
#include <atalk/adouble.h>
15
int ad_setdate(const struct adouble *ad,
16
unsigned int dateoff, u_int32_t date)
18
int xlate = (dateoff & AD_DATE_UNIX);
20
dateoff &= AD_DATE_MASK;
22
date = AD_DATE_FROM_UNIX(date);
24
if (ad->ad_version == AD_VERSION1) {
25
if (dateoff > AD_DATE_BACKUP)
27
memcpy(ad_entry(ad, ADEID_FILEI) + dateoff, &date, sizeof(date));
29
} else if (ad->ad_version == AD_VERSION2) {
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
memcpy(date, ad_entry(ad, ADEID_FILEI) + dateoff, sizeof(u_int32_t));
51
} else if (ad->ad_version == AD_VERSION2) {
52
if (dateoff > AD_DATE_ACCESS)
54
memcpy(date, ad_entry(ad, ADEID_FILEDATESI) + dateoff, sizeof(u_int32_t));
60
*date = AD_DATE_TO_UNIX(*date);