Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / afs / LINUX / osi_prototypes.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/*
11 * Exported linux support routines.
12 */
13#ifndef _OSI_PROTO_H_
14#define _OSI_PROTO_H_
15
16/* osi_alloc.c */
17extern void *osi_linux_alloc(unsigned int size, int drop_glock);
18extern void osi_linux_free(void *addr);
19extern void osi_linux_free_afs_memory(void);
20/* Debugging aid */
21extern void osi_linux_verify_alloced_memory(void);
22
23/* osi_cred.c */
24extern cred_t *crget(void);
25extern void crfree(cred_t * cr);
26extern cred_t *crdup(cred_t * cr);
27extern cred_t *crref(void);
28extern void crset(cred_t * cr);
29
30/* osi_nfssrv.c */
31extern int osi_linux_nfs_initreq(struct vrequest *av, afs_ucred_t *cr,
32 int *code);
33extern void osi_linux_nfssrv_init(void);
34extern void osi_linux_nfssrv_shutdown(void);
35extern afs_rwlock_t afs_xnfssrv;
36
37/* osi_file.c */
38extern int osi_InitCacheInfo(char *aname);
39extern int osi_rdwr(struct osi_file *osifile, struct uio *uiop, int rw);
40extern struct file *afs_linux_raw_open(afs_dcache_id_t *ainode);
41
42/* osi_ioctl.c */
43extern void osi_ioctl_init(void);
44extern void osi_ioctl_clean(void);
45
46/* osi_misc.c */
47extern int osi_lookupname_internal(char *aname, int followlink,
48 struct vfsmount **mnt, struct dentry **dpp);
49extern int osi_lookupname(char *aname, uio_seg_t seg, int followlink,
50 struct dentry **dpp);
51extern int osi_abspath(char *aname, char *buf, int buflen,
52 int followlink, char **pathp);
53extern void afs_start_thread(void (*proc)(void), char *name);
54
55/* osi_probe.c */
56extern void *osi_find_syscall_table(int which);
57
58/* osi_proc.c */
59extern void osi_proc_init(void);
60extern void osi_proc_clean(void);
61
62/* osi_sleep.c */
63extern void osi_event_shutdown(void);
64
65/* osi_syscall.c */
66extern int osi_syscall_init(void);
67extern void osi_syscall_clean(void);
68
69/* osi_sysctl.c */
70extern int osi_sysctl_init(void);
71extern void osi_sysctl_clean(void);
72
73/* osi_vm.c */
74extern int osi_VM_FlushVCache(struct vcache *avc);
75extern void osi_VM_TryToSmush(struct vcache *avc, afs_ucred_t *acred,
76 int sync);
77extern void osi_VM_FSyncInval(struct vcache *avc);
78extern void osi_VM_StoreAllSegments(struct vcache *avc);
79extern void osi_VM_FlushPages(struct vcache *avc, afs_ucred_t *credp);
80extern void osi_VM_Truncate(struct vcache *avc, int alen,
81 afs_ucred_t *acred);
82
83/* osi_vcache.c */
84extern void osi_ResetRootVCache(afs_uint32 volid);
85
86/* osi_vfsops.c */
87extern void vattr2inode(struct inode *ip, struct vattr *vp);
88extern int afs_init_inodecache(void);
89extern void afs_destroy_inodecache(void);
90
91/* osi_vnodeops.c */
92extern void afs_fill_inode(struct inode *ip, struct vattr *vattr);
93
94/* osi_groups.c */
95extern void osi_keyring_init(void);
96extern void osi_keyring_shutdown(void);
97extern 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
100extern afs_int32 osi_get_keyring_pag(afs_ucred_t *);
101extern struct key_type key_type_afs_pag;
102#endif /* LINUX_KEYRING_SUPPORT */
103
104
105#endif /* _OSI_PROTO_H_ */