/*
- * $Id: fork.h,v 1.3 2001-12-03 05:03:38 jmarcus Exp $
+ * $Id: fork.h,v 1.8.6.2.2.3 2008-11-25 15:16:33 didg Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
#include "volume.h"
#include "directory.h"
+struct file_key {
+ dev_t dev;
+ ino_t inode;
+};
+
struct ofork {
+ 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;
int of_flags;
+
struct ofork **prevp, *next;
struct ofork *of_d_prev, *of_d_next;
};
#define OPENACC_DRD (1<<4)
#define OPENACC_DWR (1<<5)
+/* ofork.of_flags bits */
#define AFPFORK_OPEN (1<<0)
#define AFPFORK_RSRC (1<<1)
#define AFPFORK_DATA (1<<2)
#define AFPFORK_ACCWR (1<<5)
#define AFPFORK_ACCMASK (AFPFORK_ACCRD | AFPFORK_ACCWR)
+#define of_name(a) (a)->of_ad->ad_m_name
/* in ofork.c */
extern struct ofork *of_alloc __P((struct vol *, struct dir *,
char *, u_int16_t *, const int,
- struct adouble *));
+ 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 struct vol *, const struct dir *,
- const char *));
+extern struct ofork *of_findname __P((struct path *));
extern int of_rename __P((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 *));
-
+extern int of_stat __P((struct path *));
+extern int of_statdir __P((const struct vol *vol, struct path *));
+extern struct adouble *of_ad __P((const struct vol *, struct path *, struct adouble *));
/* in fork.c */
extern int flushfork __P((struct ofork *));
+extern int getforkmode __P((struct adouble *, int , int ));
/* FP functions */
extern int afp_openfork __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 *));
+extern int afp_bytelock_ext __P((AFPObj *, char *, int, char *, int *));
+extern int afp_read_ext __P((AFPObj *, char *, int, char *, int *));
+extern int afp_write_ext __P((AFPObj *, char *, int, char *, int *));
#endif