linux-bk/fs/afs/internal.h
<<
>>
Prefs
   1/* internal.h: internal AFS stuff
   2 *
   3 * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the License, or (at your option) any later version.
  10 */
  11
  12#ifndef AFS_INTERNAL_H
  13#define AFS_INTERNAL_H
  14
  15#include <linux/compiler.h>
  16#include <linux/kernel.h>
  17#include <linux/fs.h>
  18#include <linux/pagemap.h>
  19
  20/*
  21 * debug tracing
  22 */
  23#define kenter(FMT, a...)       printk("==> %s("FMT")\n",__FUNCTION__ , ## a)
  24#define kleave(FMT, a...)       printk("<== %s()"FMT"\n",__FUNCTION__ , ## a)
  25#define kdebug(FMT, a...)       printk(FMT"\n" , ## a)
  26#define kproto(FMT, a...)       printk("### "FMT"\n" , ## a)
  27#define knet(FMT, a...)         printk(FMT"\n" , ## a)
  28
  29#ifdef __KDEBUG
  30#define _enter(FMT, a...)       kenter(FMT , ## a)
  31#define _leave(FMT, a...)       kleave(FMT , ## a)
  32#define _debug(FMT, a...)       kdebug(FMT , ## a)
  33#define _proto(FMT, a...)       kproto(FMT , ## a)
  34#define _net(FMT, a...)         knet(FMT , ## a)
  35#else
  36#define _enter(FMT, a...)       do { } while(0)
  37#define _leave(FMT, a...)       do { } while(0)
  38#define _debug(FMT, a...)       do { } while(0)
  39#define _proto(FMT, a...)       do { } while(0)
  40#define _net(FMT, a...)         do { } while(0)
  41#endif
  42
  43static inline void afs_discard_my_signals(void)
  44{
  45        while (signal_pending(current)) {
  46                siginfo_t sinfo;
  47
  48                spin_lock_irq(&current->sighand->siglock);
  49                dequeue_signal(current,&current->blocked, &sinfo);
  50                spin_unlock_irq(&current->sighand->siglock);
  51        }
  52}
  53
  54/*
  55 * cell.c
  56 */
  57extern struct rw_semaphore afs_proc_cells_sem;
  58extern struct list_head afs_proc_cells;
  59#ifdef AFS_CACHING_SUPPORT
  60extern struct cachefs_index_def afs_cache_cell_index_def;
  61#endif
  62
  63/*
  64 * dir.c
  65 */
  66extern struct inode_operations afs_dir_inode_operations;
  67extern struct file_operations afs_dir_file_operations;
  68
  69/*
  70 * file.c
  71 */
  72extern struct address_space_operations afs_fs_aops;
  73extern struct inode_operations afs_file_inode_operations;
  74extern struct file_operations afs_file_file_operations;
  75
  76#ifdef AFS_CACHING_SUPPORT
  77extern int afs_cache_get_page_cookie(struct page *page,
  78                                     struct cachefs_page **_page_cookie);
  79#endif
  80
  81/*
  82 * inode.c
  83 */
  84extern int afs_iget(struct super_block *sb, struct afs_fid *fid,
  85                    struct inode **_inode);
  86extern int afs_inode_getattr(struct vfsmount *mnt, struct dentry *dentry,
  87                             struct kstat *stat);
  88extern void afs_clear_inode(struct inode *inode);
  89
  90/*
  91 * key_afs.c
  92 */
  93#ifdef CONFIG_KEYS
  94extern int afs_key_register(void);
  95extern void afs_key_unregister(void);
  96#endif
  97
  98/*
  99 * main.c
 100 */
 101#ifdef AFS_CACHING_SUPPORT
 102extern struct cachefs_netfs afs_cache_netfs;
 103#endif
 104
 105/*
 106 * mntpt.c
 107 */
 108extern struct inode_operations afs_mntpt_inode_operations;
 109extern struct file_operations afs_mntpt_file_operations;
 110extern struct afs_timer afs_mntpt_expiry_timer;
 111extern struct afs_timer_ops afs_mntpt_expiry_timer_ops;
 112extern unsigned long afs_mntpt_expiry_timeout;
 113
 114extern int afs_mntpt_check_symlink(struct afs_vnode *vnode);
 115
 116/*
 117 * super.c
 118 */
 119extern int afs_fs_init(void);
 120extern void afs_fs_exit(void);
 121
 122#define AFS_CB_HASH_COUNT (PAGE_SIZE / sizeof(struct list_head))
 123
 124extern struct list_head afs_cb_hash_tbl[];
 125extern spinlock_t afs_cb_hash_lock;
 126
 127#define afs_cb_hash(SRV,FID) \
 128        afs_cb_hash_tbl[((unsigned long)(SRV) + \
 129                        (FID)->vid + (FID)->vnode + (FID)->unique) % \
 130                        AFS_CB_HASH_COUNT]
 131
 132/*
 133 * proc.c
 134 */
 135extern int afs_proc_init(void);
 136extern void afs_proc_cleanup(void);
 137extern int afs_proc_cell_setup(struct afs_cell *cell);
 138extern void afs_proc_cell_remove(struct afs_cell *cell);
 139
 140#endif /* AFS_INTERNAL_H */
 141
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.