/******************************** */
/* Rule Set Based Access Control  */
/* Author and (c) 1999: Amon Ott  */
/* proc fs functions              */
/* Last modified: 05/May/99       */
/******************************** */

#ifndef __RSBAC_PROC_FS_H
#define __RSBAC_PROC_FS_H

#include <linux/proc_fs.h>
#define PROC_RSBAC_INFO (PROC_FS+1)
#define PROC_RSBAC_INFO_BACKUP (PROC_FS+2)

enum rsbac_directory_inos
  {
    PROC_RSBAC_DEVICES = PROC_CODA_FS_LAST+1,
    PROC_RSBAC_STATS,
    PROC_RSBAC_XSTATS,
    PROC_RSBAC_STATS_PM,
    PROC_RSBAC_STATS_RC,
    PROC_RSBAC_STATS_AUTH,
    PROC_RSBAC_STATS_ACL,
    PROC_RSBAC_LOG_LEVELS,
    PROC_RSBAC_DEBUG,
    PROC_RSBAC_AUTO_WRITE,
    PROC_RSBAC_VERSIONS,
    PROC_RSBAC_RMSG,
    PROC_RSBAC_AUTH_CAPLIST,
    PROC_RSBAC_ACL_ACLLIST,
    PROC_RSBAC_REG_MODULES,
    PROC_RSBAC_BACKUP_DBUGADF,
    PROC_RSBAC_BACKUP_RC_ROLE,
    PROC_RSBAC_BACKUP_RC_TYPE,
    PROC_RSBAC_LAST
  };

extern struct proc_dir_entry proc_rsbac_info_root;
extern struct proc_dir_entry proc_rsbac_info_backup;
extern struct file_operations proc_rsbac_operations;
extern struct inode_operations proc_rsbac_inode_operations;

static inline int proc_rsbac_register(struct proc_dir_entry * x)
  {
    return proc_register(&proc_rsbac_info_root, x);
  };

static inline int proc_rsbac_unregister(int x)
  {
    return proc_unregister(&proc_rsbac_info_root, x);
  };

static inline int proc_rsbac_register_backup(struct proc_dir_entry * x)
  {
    return proc_register(&proc_rsbac_info_backup, x);
  };

static inline int proc_rsbac_unregister_backup(int x)
  {
    return proc_unregister(&proc_rsbac_info_backup, x);
  };

#endif
