lvm-internal.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * kernel/lvm-internal.h
  3.  *
  4.  * Copyright (C) 2001 Sistina Software
  5.  *
  6.  *
  7.  * LVM driver is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License as published by
  9.  * the Free Software Foundation; either version 2, or (at your option)
  10.  * any later version.
  11.  *
  12.  * LVM driver is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  * GNU General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with GNU CC; see the file COPYING.  If not, write to
  19.  * the Free Software Foundation, 59 Temple Place - Suite 330,
  20.  * Boston, MA 02111-1307, USA.
  21.  *
  22.  */
  23. /*
  24.  * Changelog
  25.  *
  26.  *    05/01/2001:Joe Thornber - Factored this file out of lvm.c
  27.  *
  28.  */
  29. #ifndef LVM_INTERNAL_H
  30. #define LVM_INTERNAL_H
  31. #include <linux/lvm.h>
  32. #define _LVM_INTERNAL_H_VERSION "LVM "LVM_RELEASE_NAME" ("LVM_RELEASE_DATE")"
  33. /* global variables, defined in lvm.c */
  34. extern char *lvm_version;
  35. extern ushort lvm_iop_version;
  36. extern int loadtime;
  37. extern const char *const lvm_name;
  38. extern vg_t *vg[];
  39. extern struct file_operations lvm_chr_fops;
  40. extern struct block_device_operations lvm_blk_dops;
  41. /* debug macros */
  42. #ifdef DEBUG_IOCTL
  43. #define P_IOCTL(fmt, args...) printk(KERN_DEBUG "lvm ioctl: " fmt, ## args)
  44. #else
  45. #define P_IOCTL(fmt, args...)
  46. #endif
  47. #ifdef DEBUG_MAP
  48. #define P_MAP(fmt, args...) printk(KERN_DEBUG "lvm map: " fmt, ## args)
  49. #else
  50. #define P_MAP(fmt, args...)
  51. #endif
  52. #ifdef DEBUG_KFREE
  53. #define P_KFREE(fmt, args...) printk(KERN_DEBUG "lvm kfree: " fmt, ## args)
  54. #else
  55. #define P_KFREE(fmt, args...)
  56. #endif
  57. #ifdef DEBUG_DEVICE
  58. #define P_DEV(fmt, args...) printk(KERN_DEBUG "lvm device: " fmt, ## args)
  59. #else
  60. #define P_DEV(fmt, args...)
  61. #endif
  62. /* lvm-snap.c */
  63. int lvm_get_blksize(kdev_t);
  64. int lvm_snapshot_alloc(lv_t *);
  65. int lvm_snapshot_fill_COW_page(vg_t *, lv_t *);
  66. int lvm_snapshot_COW(kdev_t, ulong, ulong, ulong, vg_t *vg, lv_t *);
  67. int lvm_snapshot_remap_block(kdev_t *, ulong *, ulong, lv_t *);
  68. void lvm_snapshot_release(lv_t *);
  69. int lvm_write_COW_table_block(vg_t *, lv_t *);
  70. void lvm_hash_link(lv_block_exception_t *, kdev_t, ulong, lv_t *);
  71. int lvm_snapshot_alloc_hash_table(lv_t *);
  72. void lvm_drop_snapshot(vg_t *vg, lv_t *, const char *);
  73. /* lvm_fs.c */
  74. void lvm_init_fs(void);
  75. void lvm_fin_fs(void);
  76. void lvm_fs_create_vg(vg_t *vg_ptr);
  77. void lvm_fs_remove_vg(vg_t *vg_ptr);
  78. devfs_handle_t lvm_fs_create_lv(vg_t *vg_ptr, lv_t *lv);
  79. void lvm_fs_remove_lv(vg_t *vg_ptr, lv_t *lv);
  80. void lvm_fs_create_pv(vg_t *vg_ptr, pv_t *pv);
  81. void lvm_fs_remove_pv(vg_t *vg_ptr, pv_t *pv);
  82. #endif