]> arthur.barton.de Git - netatalk.git/blob - etc/afpd/fork.h
Add FPSyncFork, set command 76 to afp_null, move everything from switch.c to auth.c
[netatalk.git] / etc / afpd / fork.h
1 /*
2  * $Id: fork.h,v 1.12 2009-02-25 16:14:08 franklahm Exp $
3  *
4  * Copyright (c) 1990,1993 Regents of The University of Michigan.
5  * All Rights Reserved.  See COPYRIGHT.
6  */
7
8 #ifndef AFPD_FORK_H
9 #define AFPD_FORK_H 1
10
11 #include <stdio.h>
12 #include <sys/cdefs.h>
13
14 #include <netatalk/endian.h>
15 #include <atalk/adouble.h>
16 #include "volume.h"
17 #include "directory.h"
18
19 struct file_key {
20     dev_t               dev;
21     ino_t               inode;
22 };
23
24 struct ofork {
25     struct file_key     key;
26     struct adouble      *of_ad;
27     struct vol          *of_vol;
28     struct dir          *of_dir;
29
30     u_int16_t           of_refnum;
31     int                 of_flags;
32
33     struct ofork        **prevp, *next;
34     struct ofork        *of_d_prev, *of_d_next;
35 };
36
37 #define OPENFORK_DATA   (0)
38 #define OPENFORK_RSCS   (1<<7)
39
40 #define OPENACC_RD      (1<<0)
41 #define OPENACC_WR      (1<<1)
42 #define OPENACC_DRD     (1<<4)
43 #define OPENACC_DWR     (1<<5)
44
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)
53
54 #define of_name(a) (a)->of_ad->ad_m_name
55 /* in ofork.c */
56 extern struct ofork *of_alloc    __P((struct vol *, struct dir *,
57                                                       char *, u_int16_t *, const int,
58                                                       struct adouble *,
59                                                       struct stat *));
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 *,
64                                           struct ofork *,
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 *));
74 /* in fork.c */
75 extern int          flushfork    __P((struct ofork *));
76 extern int          getforkmode  __P((struct adouble *, int , int ));
77
78 /* FP functions */
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 *));
88
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 *));
93 #endif