-/*
+ /*
* Copyright (c) 1990,1991 Regents of The University of Michigan.
* All Rights Reserved.
*
int ad_reso_refcount;
off_t ad_rlen; /* ressource fork len with AFP 3.0 *
* the header parameter size is too small. */
- char *ad_name; /* name (UTF8-MAC) */
+ char *ad_name; /* mac name (maccharset or UTF8-MAC) */
struct adouble_fops *ad_ops;
uint16_t ad_open_forks; /* open forks (by others) */
char ad_data[AD_DATASZ_MAX];
#define AD_AFPFILEI_GROUP (1 << 1) /* ignore group */
#define AD_AFPFILEI_BLANKACCESS (1 << 2) /* blank access permissions */
+/*
+ * String identifiers for the 16 AppleDouble filler bytes
+ */
+#define AD_FILLER_NETATALK "Netatalk "
+#define AD_FILLER_OSX "Mac OS X"
+
#define ad_data_fileno(ad) ((ad)->ad_data_fork.adf_fd)
#define ad_reso_fileno(ad) ((ad)->ad_rfp->adf_fd)
#define ad_meta_fileno(ad) ((ad)->ad_mdp->adf_fd)
/* ad_flush.c */
extern int ad_rebuild_adouble_header_v2(struct adouble *);
extern int ad_rebuild_adouble_header_ea(struct adouble *);
+extern int ad_rebuild_adouble_header_osx(struct adouble *ad, char *adbuf);
extern int ad_copy_header (struct adouble *, struct adouble *);
extern int ad_flush (struct adouble *);
extern int ad_close (struct adouble *, int);
struct vol;
extern void ad_init (struct adouble *, const struct vol * restrict);
extern void ad_init_old (struct adouble *ad, int flags, int options);
+extern int ad_init_offsets(struct adouble *ad);
extern int ad_open (struct adouble *ad, const char *path, int adflags, ...);
extern int ad_openat (struct adouble *, int dirfd, const char *path, int adflags, ...);
extern int ad_refresh (const char *path, struct adouble *);
#ifdef WITH_SENDFILE
extern int ad_readfile_init(const struct adouble *ad, int eid, off_t *off, int end);
#endif
+#ifdef WITH_RECVFILE
+extern ssize_t ad_recvfile(struct adouble *ad, int eid, int sock, off_t off, size_t len, int);
+#endif
#endif /* _ATALK_ADOUBLE_H */