2 * Copyright 2000, International Business Machines Corporation and others.
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
11 * Exported linux support routines.
17 extern void *osi_linux_alloc(unsigned int size
, int drop_glock
);
18 extern void osi_linux_free(void *addr
);
19 extern void osi_linux_free_afs_memory(void);
21 extern void osi_linux_verify_alloced_memory(void);
24 extern cred_t
*crget(void);
25 extern void crfree(cred_t
* cr
);
26 extern cred_t
*crdup(cred_t
* cr
);
27 extern cred_t
*crref(void);
28 extern void crset(cred_t
* cr
);
31 extern int osi_linux_nfs_initreq(struct vrequest
*av
, afs_ucred_t
*cr
,
33 extern void osi_linux_nfssrv_init(void);
34 extern void osi_linux_nfssrv_shutdown(void);
35 extern afs_rwlock_t afs_xnfssrv
;
38 extern int osi_InitCacheInfo(char *aname
);
39 extern int osi_rdwr(struct osi_file
*osifile
, struct uio
*uiop
, int rw
);
40 extern struct file
*afs_linux_raw_open(afs_dcache_id_t
*ainode
);
43 extern void osi_ioctl_init(void);
44 extern void osi_ioctl_clean(void);
47 extern int osi_lookupname_internal(char *aname
, int followlink
,
48 struct vfsmount
**mnt
, struct dentry
**dpp
);
49 extern int osi_lookupname(char *aname
, uio_seg_t seg
, int followlink
,
51 extern int osi_abspath(char *aname
, char *buf
, int buflen
,
52 int followlink
, char **pathp
);
53 extern void afs_start_thread(void (*proc
)(void), char *name
);
56 extern void *osi_find_syscall_table(int which
);
59 extern void osi_proc_init(void);
60 extern void osi_proc_clean(void);
63 extern void osi_event_shutdown(void);
66 extern int osi_syscall_init(void);
67 extern void osi_syscall_clean(void);
70 extern int osi_sysctl_init(void);
71 extern void osi_sysctl_clean(void);
74 extern int osi_VM_FlushVCache(struct vcache
*avc
);
75 extern void osi_VM_TryToSmush(struct vcache
*avc
, afs_ucred_t
*acred
,
77 extern void osi_VM_FSyncInval(struct vcache
*avc
);
78 extern void osi_VM_StoreAllSegments(struct vcache
*avc
);
79 extern void osi_VM_FlushPages(struct vcache
*avc
, afs_ucred_t
*credp
);
80 extern void osi_VM_Truncate(struct vcache
*avc
, int alen
,
84 extern void osi_ResetRootVCache(afs_uint32 volid
);
87 extern void vattr2inode(struct inode
*ip
, struct vattr
*vp
);
88 extern int afs_init_inodecache(void);
89 extern void afs_destroy_inodecache(void);
92 extern void afs_fill_inode(struct inode
*ip
, struct vattr
*vattr
);
95 extern void osi_keyring_init(void);
96 extern void osi_keyring_shutdown(void);
97 extern int __setpag(cred_t
**cr
, afs_uint32 pagvalue
, afs_uint32
*newpag
,
98 int change_parent
, struct group_info
**old_groups
);
99 #ifdef LINUX_KEYRING_SUPPORT
100 extern afs_int32
osi_get_keyring_pag(afs_ucred_t
*);
101 extern struct key_type key_type_afs_pag
;
102 #endif /* LINUX_KEYRING_SUPPORT */
105 #endif /* _OSI_PROTO_H_ */