next up previous contents
Next: Zarządzanie obiektami procfs-u Up: Implementacja Previous: Wstęp i gdzie ją   Spis rzeczy

Struktura proc_dir_entry

Jest to podstawowa struktura używana do reprezentacji obiektów w procfs-ie. Zdefiniowana jest w /usr/include/linux/proc_fs.h jak następuje:
struct proc_dir_entry {
  unsigned short low_ino;
  unsigned short namelen;
  const char *name;
  mode_t mode;
  nlink_t nlink;
  uid_t uid;
  gid_t gid;
  unsigned long size;

  struct inode_operations * proc_iops;
  struct file_operations * proc_fops;
  get_info_t *get_info;
  struct module *owner;       /* jeśli procfs jest używany wew. modułu */
                              /* ustaw to na THIS_MODULE */
  struct proc_dir_entry *next, *parent, *subdir;
  void *data;
  read_proc_t *read_proc;
  write_proc_t *write_proc;
  atomic_t count;             /* licznik użycia */
  int deleted;                /* czy jest usunięty */
  kdev_t  rdev;
};

Ze struktur takich zbudowane jest całe drzewo plików i katalogów proc-a, a także linków i całej reszty obiektów, które znajdują sią w tym systemie plików. Wyjątkiem są tu katalogi procesów (bo trzeba nam wiedzieć, że katalog /proc jest w dużej części zaludniony właśnie plikami i katalogami odpowiadającymi poszczególnym procesom), gdyż wszystkie one korzystają z tej samej gałęzi drzewa struktur proc_dir_entry. Poszczególne katalogi procesów są rozróżniane na podstawie funkcji dostępu do katalogu (tzw. czytacz-a, o którym będzie napisane dalej), czyli jeżeli czytany jest katalog zawierający strukturę proc_dir_entry katalogu jakiegos procesu, to odpowiednia funkcja read_dir interfejsu vfs zinterpretuje to dla każdego aktualnie działającego procesu zo osobna.



2001-12-19