2 * $Id: fork.h,v 1.13 2009-09-11 09:14:16 franklahm Exp $
4 * Copyright (c) 1990,1993 Regents of The University of Michigan.
5 * All Rights Reserved. See COPYRIGHT.
12 #include <sys/cdefs.h>
14 #include <netatalk/endian.h>
15 #include <atalk/adouble.h>
17 #include "directory.h"
26 struct adouble *of_ad;
33 struct ofork **prevp, *next;
34 struct ofork *of_d_prev, *of_d_next;
37 #define OPENFORK_DATA (0)
38 #define OPENFORK_RSCS (1<<7)
40 #define OPENACC_RD (1<<0)
41 #define OPENACC_WR (1<<1)
42 #define OPENACC_DRD (1<<4)
43 #define OPENACC_DWR (1<<5)
45 /* ofork.of_flags bits */
46 #define AFPFORK_OPEN (1<<0)
47 #define AFPFORK_RSRC (1<<1)
48 #define AFPFORK_DATA (1<<2)
49 #define AFPFORK_DIRTY (1<<3)
50 #define AFPFORK_ACCRD (1<<4)
51 #define AFPFORK_ACCWR (1<<5)
52 #define AFPFORK_ACCMASK (AFPFORK_ACCRD | AFPFORK_ACCWR)
54 #define of_name(a) (a)->of_ad->ad_m_name
56 extern struct ofork *of_alloc __P((struct vol *, struct dir *,
57 char *, u_int16_t *, const int,
60 extern void of_dealloc __P((struct ofork *));
61 extern struct ofork *of_find __P((const u_int16_t));
62 extern struct ofork *of_findname __P((struct path *));
63 extern int of_rename __P((const struct vol *,
65 struct dir *, const char *,
66 struct dir *, const char *));
67 extern int of_flush __P((const struct vol *));
68 extern void of_pforkdesc __P((FILE *));
69 extern int of_stat __P((struct path *));
70 extern int of_statdir __P((const struct vol *vol, struct path *));
71 extern int of_closefork __P((struct ofork *ofork));
72 extern void of_closevol __P((const struct vol *vol));
73 extern struct adouble *of_ad __P((const struct vol *, struct path *, struct adouble *));
75 extern int flushfork __P((struct ofork *));
76 extern int getforkmode __P((struct adouble *, int , int ));
79 extern int afp_openfork __P((AFPObj *, char *, int, char *, int *));
80 extern int afp_bytelock __P((AFPObj *, char *, int, char *, int *));
81 extern int afp_getforkparams __P((AFPObj *, char *, int, char *, int *));
82 extern int afp_setforkparams __P((AFPObj *, char *, int, char *, int *));
83 extern int afp_read __P((AFPObj *, char *, int, char *, int *));
84 extern int afp_write __P((AFPObj *, char *, int, char *, int *));
85 extern int afp_flushfork __P((AFPObj *, char *, int, char *, int *));
86 extern int afp_flush __P((AFPObj *, char *, int, char *, int *));
87 extern int afp_closefork __P((AFPObj *, char *, int, char *, int *));
89 extern int afp_bytelock_ext __P((AFPObj *, char *, int, char *, int *));
90 extern int afp_read_ext __P((AFPObj *, char *, int, char *, int *));
91 extern int afp_write_ext __P((AFPObj *, char *, int, char *, int *));
92 extern int afp_syncfork __P((AFPObj *, char *, int, char *, int *));