X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=etc%2Fafpd%2Ffork.h;h=ae22b8f7f6b52c1b161808ac027b07948680af97;hp=d1bb770fced6d15c599cd8e403b50fe72a97aa63;hb=5116ed2346ea7ee6e5a9858dee94f3eacdc00d7e;hpb=761f679631e6f65712e1a21d05070f184ac06bec;ds=sidebyside diff --git a/etc/afpd/fork.h b/etc/afpd/fork.h index d1bb770f..ae22b8f7 100644 --- a/etc/afpd/fork.h +++ b/etc/afpd/fork.h @@ -1,6 +1,4 @@ /* - * $Id: fork.h,v 1.5 2002-09-05 14:52:07 didg Exp $ - * * Copyright (c) 1990,1993 Regents of The University of Michigan. * All Rights Reserved. See COPYRIGHT. */ @@ -17,68 +15,88 @@ #include "directory.h" struct file_key { - dev_t dev; - ino_t inode; + dev_t dev; + ino_t inode; }; struct ofork { - struct adouble *of_ad; + struct file_key key; + struct adouble *of_ad; struct vol *of_vol; - struct dir *of_dir; - char *of_name; - int of_namelen; - - u_int16_t of_refnum; + cnid_t of_did; + uint16_t of_refnum; int of_flags; - - struct file_key key; struct ofork **prevp, *next; - struct ofork *of_d_prev, *of_d_next; +// struct ofork *of_d_prev, *of_d_next; }; -#define OPENFORK_DATA (0) -#define OPENFORK_RSCS (1<<7) +#define OPENFORK_DATA (0) +#define OPENFORK_RSCS (1<<7) -#define OPENACC_RD (1<<0) -#define OPENACC_WR (1<<1) -#define OPENACC_DRD (1<<4) -#define OPENACC_DWR (1<<5) +#define OPENACC_RD (1<<0) +#define OPENACC_WR (1<<1) +#define OPENACC_DRD (1<<4) +#define OPENACC_DWR (1<<5) -#define AFPFORK_OPEN (1<<0) -#define AFPFORK_RSRC (1<<1) -#define AFPFORK_DATA (1<<2) +/* ofork.of_flags bits */ +#define AFPFORK_OPEN (1<<0) +#define AFPFORK_RSRC (1<<1) +#define AFPFORK_DATA (1<<2) #define AFPFORK_DIRTY (1<<3) #define AFPFORK_ACCRD (1<<4) #define AFPFORK_ACCWR (1<<5) #define AFPFORK_ACCMASK (AFPFORK_ACCRD | AFPFORK_ACCWR) +#define AFPFORK_MODIFIED (1<<6) /* used in FCE for modified files */ +#ifdef AFS +extern struct ofork *writtenfork; +#endif + +#define of_name(a) (a)->of_ad->ad_m_name /* in ofork.c */ -extern struct ofork *of_alloc __P((struct vol *, struct dir *, +extern struct ofork *of_alloc (struct vol *, struct dir *, char *, u_int16_t *, const int, struct adouble *, - struct stat *)); -extern void of_dealloc __P((struct ofork *)); -extern struct ofork *of_find __P((const u_int16_t)); -extern struct ofork *of_findname __P((const char *, struct stat *)); -extern int of_rename __P((const struct vol *, + struct stat *); +extern void of_dealloc (struct ofork *); +extern struct ofork *of_find (const u_int16_t); +extern struct ofork *of_findname (struct path *); +extern int of_rename (const struct vol *, struct ofork *, struct dir *, const char *, - struct dir *, const char *)); -extern int of_flush __P((const struct vol *)); -extern void of_pforkdesc __P((FILE *)); + struct dir *, const char *); +extern int of_flush (const struct vol *); +extern void of_pforkdesc (FILE *); +extern int of_stat (struct path *); +extern int of_statdir (struct vol *vol, struct path *); +extern int of_closefork (struct ofork *ofork); +extern void of_closevol (const struct vol *vol); +extern void of_close_all_forks(void); +extern struct adouble *of_ad (const struct vol *, struct path *, struct adouble *); + +#ifdef HAVE_ATFUNCS +extern struct ofork *of_findnameat(int dirfd, struct path *path); +extern int of_fstatat(int dirfd, struct path *path); +#endif /* HAVE_ATFUNCS */ + /* in fork.c */ -extern int flushfork __P((struct ofork *)); +extern int flushfork (struct ofork *); +extern int getforkmode (struct adouble *, int , int ); /* FP functions */ -extern int afp_openfork __P((AFPObj *, char *, int, char *, int *)); -extern int afp_bytelock __P((AFPObj *, char *, int, char *, int *)); -extern int afp_getforkparams __P((AFPObj *, char *, int, char *, int *)); -extern int afp_setforkparams __P((AFPObj *, char *, int, char *, int *)); -extern int afp_read __P((AFPObj *, char *, int, char *, int *)); -extern int afp_write __P((AFPObj *, char *, int, char *, int *)); -extern int afp_flushfork __P((AFPObj *, char *, int, char *, int *)); -extern int afp_flush __P((AFPObj *, char *, int, char *, int *)); -extern int afp_closefork __P((AFPObj *, char *, int, char *, int *)); +int afp_openfork (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_bytelock (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_getforkparams (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_setforkparams (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_read (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_write (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_flushfork (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_flush (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_closefork (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_bytelock_ext (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_read_ext (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_write_ext (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); +int afp_syncfork (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); #endif