]> arthur.barton.de Git - netatalk.git/blob - etc/afpd/fork.h
Initial revision
[netatalk.git] / etc / afpd / fork.h
1 /*
2  * Copyright (c) 1990,1993 Regents of The University of Michigan.
3  * All Rights Reserved.  See COPYRIGHT.
4  */
5
6 #ifndef AFPD_FORK_H
7 #define AFPD_FORK_H 1
8
9 #include <stdio.h>
10 #include <sys/cdefs.h>
11
12 #include <netatalk/endian.h>
13 #include <atalk/adouble.h>
14 #include "volume.h"
15 #include "directory.h"
16
17 struct ofork {
18     struct adouble      *of_ad;
19     struct vol          *of_vol;
20     struct dir          *of_dir;
21     char                *of_name;
22     int                 of_namelen;
23     u_int16_t           of_refnum;
24     int                 of_flags;
25     struct ofork        **prevp, *next;
26     struct ofork        *of_d_prev, *of_d_next;
27 };
28
29 #define OPENFORK_DATA   (0)
30 #define OPENFORK_RSCS   (1<<7)
31
32 #define OPENACC_RD      (1<<0)
33 #define OPENACC_WR      (1<<1)
34 #define OPENACC_DRD     (1<<4)
35 #define OPENACC_DWR     (1<<5)
36
37 #define AFPFORK_OPEN    (1<<0)
38 #define AFPFORK_RSRC    (1<<1)
39 #define AFPFORK_DATA    (1<<2)
40 #define AFPFORK_DIRTY   (1<<3)
41 #define AFPFORK_ACCRD   (1<<4)
42 #define AFPFORK_ACCWR   (1<<5)
43 #define AFPFORK_ACCMASK (AFPFORK_ACCRD | AFPFORK_ACCWR)
44
45 /* in ofork.c */
46 extern struct ofork *of_alloc    __P((struct vol *, struct dir *, 
47                                       char *, u_int16_t *, const int, 
48                                       struct adouble *));
49 extern void         of_dealloc   __P((struct ofork *));
50 extern struct ofork *of_find     __P((const u_int16_t));
51 extern struct ofork *of_findname __P((const struct vol *, const struct dir *,
52                                       const char *));
53 extern int          of_rename    __P((const struct vol *, 
54                                       struct dir *, const char *,
55                                       struct dir *, const char *));
56 extern int          of_flush     __P((const struct vol *));
57 extern void         of_pforkdesc __P((FILE *));
58
59 /* in fork.c */
60 extern int          flushfork    __P((struct ofork *));
61
62 /* FP functions */
63 extern int      afp_openfork __P((AFPObj *, char *, int, char *, int *));
64 extern int      afp_bytelock __P((AFPObj *, char *, int, char *, int *));
65 extern int      afp_getforkparams __P((AFPObj *, char *, int, char *, int *));
66 extern int      afp_setforkparams __P((AFPObj *, char *, int, char *, int *));
67 extern int      afp_read __P((AFPObj *, char *, int, char *, int *));
68 extern int      afp_write __P((AFPObj *, char *, int, char *, int *));
69 extern int      afp_flushfork __P((AFPObj *, char *, int, char *, int *));
70 extern int      afp_flush __P((AFPObj *, char *, int, char *, int *));
71 extern int      afp_closefork __P((AFPObj *, char *, int, char *, int *));
72 #endif