Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / afs / UKERNEL / afs_usrops.h
CommitLineData
805e021f
CE
1/*
2 * Copyright 2000, International Business Machines Corporation and others.
3 * All Rights Reserved.
4 *
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
8 */
9
10#ifndef __AFS_USROPS_H__
11#define __AFS_USROPS_H__ 1
12
13#ifdef KERNEL
14# include "afs/sysincludes.h"
15# include "afsincludes.h"
16#endif /* KERNEL */
17
18/*
19 * Macros to manipulate doubly linked lists
20 */
21#define DLL_INIT_LIST(_HEAD, _TAIL) \
22 { _HEAD = NULL ; _TAIL = NULL; }
23
24#define DLL_INSERT_TAIL(_ELEM, _HEAD, _TAIL, _NEXT, _PREV) \
25{ \
26 if (_HEAD == NULL) { \
27 _ELEM->_NEXT = NULL; \
28 _ELEM->_PREV = NULL; \
29 _HEAD = _ELEM; \
30 _TAIL = _ELEM; \
31 } else { \
32 _ELEM->_NEXT = NULL; \
33 _ELEM->_PREV = _TAIL; \
34 _TAIL->_NEXT = _ELEM; \
35 _TAIL = _ELEM; \
36 } \
37}
38
39#define DLL_DELETE(_ELEM, _HEAD, _TAIL, _NEXT, _PREV) \
40{ \
41 if (_ELEM->_NEXT == NULL) { \
42 _TAIL = _ELEM->_PREV; \
43 } else { \
44 _ELEM->_NEXT->_PREV = _ELEM->_PREV; \
45 } \
46 if (_ELEM->_PREV == NULL) { \
47 _HEAD = _ELEM->_NEXT; \
48 } else { \
49 _ELEM->_PREV->_NEXT = _ELEM->_NEXT; \
50 } \
51 _ELEM->_NEXT = NULL; \
52 _ELEM->_PREV = NULL; \
53}
54
55extern struct afsconf_dir *afs_cdir;
56extern char afs_LclCellName[64];
57
58extern int afs_osicred_Initialized;
59
60extern void uafs_InitThread(void);
61extern int uafs_Setup(const char *mount);
62extern int uafs_ParseArgs(int argc, char **argv);
63extern int uafs_Run(void);
64extern const char* uafs_MountDir(void);
65extern void uafs_RxServerProc(void);
66extern int uafs_LookupLink(struct usr_vnode *vp, struct usr_vnode *parentP,
67 struct usr_vnode **vpp);
68extern int uafs_LookupName(char *path, struct usr_vnode *parentP,
69 struct usr_vnode **vpp, int follow,
70 int no_eval_mtpt);
71extern int uafs_LookupParent(char *path, struct usr_vnode **vpp);
72extern int uafs_GetAttr(struct usr_vnode *vp, struct stat *stats);
73
74extern int uafs_SetTokens(char *buf, int len);
75extern int uafs_mkdir(char *path, int mode);
76extern int uafs_mkdir_r(char *path, int mode);
77extern int uafs_chdir(char *path);
78extern int uafs_chdir_r(char *path);
79extern int uafs_open(char *path, int flags, int mode);
80extern int uafs_open_r(char *path, int flags, int mode);
81extern int uafs_creat(char *path, int mode);
82extern int uafs_creat_r(char *path, int mode);
83extern int uafs_write(int fd, char *buf, int len);
84extern int uafs_pwrite(int fd, char *buf, int len, off_t offset);
85extern int uafs_pwrite_r(int fd, char *buf, int len, off_t offset);
86extern int uafs_read(int fd, char *buf, int len);
87extern int uafs_pread(int fd, char *buf, int leni, off_t offset);
88extern int uafs_pread_r(int fd, char *buf, int len, off_t offset);
89extern int uafs_pread_nocache(int fd, char *buf, int leni, off_t offset);
90extern int uafs_pread_nocache_r(int fd, char *buf, int len, off_t offset);
91extern int uafs_fsync(int fd);
92extern int uafs_fsync_r(int fd);
93extern int uafs_close(int fd);
94extern int uafs_close_r(int fd);
95extern int uafs_stat(char *path, struct stat *stats);
96extern int uafs_stat_r(char *path, struct stat *stats);
97extern int uafs_lstat(char *path, struct stat *stats);
98extern int uafs_lstat_r(char *path, struct stat *stats);
99extern int uafs_fstat(int fd, struct stat *stats);
100extern int uafs_fstat_r(int fd, struct stat *stats);
101extern int uafs_truncate(char *path, int len);
102extern int uafs_truncate_r(char *path, int len);
103extern int uafs_ftruncate(int fd, int len);
104extern int uafs_ftruncate_r(int fd, int len);
105extern int uafs_lseek(int fd, int offset, int whence);
106extern int uafs_lseek_r(int fd, int offset, int whence);
107extern int uafs_chmod(char *path, int mode);
108extern int uafs_chmod_r(char *path, int mode);
109extern int uafs_fchmod(int fd, int mode);
110extern int uafs_fchmod_r(int fd, int mode);
111extern int uafs_symlink(char *target, char *source);
112extern int uafs_symlink_r(char *target, char *source);
113extern int uafs_unlink(char *path);
114extern int uafs_unlink_r(char *path);
115extern int uafs_rmdir(char *path);
116extern int uafs_rmdir_r(char *path);
117extern int uafs_readlink(char *path, char *buf, int len);
118extern int uafs_readlink_r(char *path, char *buf, int len);
119extern int uafs_link(char *existing, char *newfile);
120extern int uafs_link_r(char *existing, char *newfile);
121extern int uafs_rename(char *old, char *newfile);
122extern int uafs_rename_r(char *old, char *newfile);
123extern int uafs_FlushFile(char *path);
124extern int uafs_FlushFile_r(char *path);
125extern usr_DIR *uafs_opendir(char *path);
126extern usr_DIR *uafs_opendir_r(char *path);
127extern struct usr_dirent *uafs_readdir(usr_DIR * dirp);
128extern struct usr_dirent *uafs_readdir_r(usr_DIR * dirp);
129extern int uafs_getdents(int fd, struct min_direct *buf, int len);
130extern int uafs_getdents_r(int fd, struct min_direct *buf, int len);
131extern int uafs_closedir(usr_DIR * dirp);
132extern int uafs_closedir_r(usr_DIR * dirp);
133extern int uafs_unlog(void);
134extern int uafs_unlog_r(void);
135extern void uafs_SetRxPort(int);
136extern char *uafs_afsPathName(char *);
137extern int uafs_RPCStatsEnableProc(void);
138extern int uafs_RPCStatsDisableProc(void);
139extern int uafs_RPCStatsEnablePeer(void);
140extern int uafs_RPCStatsDisablePeer(void);
141extern int uafs_IsRoot(char *path);
142extern int uafs_statmountpoint_r(char *path);
143extern int uafs_statvfs(struct statvfs *buf);
144extern void uafs_Shutdown(void);
145extern void uafs_mount(void);
146extern void uafs_setMountDir(const char *dir);
147extern int uafs_access(char *path, int amode);
148
149#endif /* __AFS_USROPS_H__ */