The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/gnu/fs/reiserfs/reiserfs_item_ops.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright 2000 Hans Reiser
    3  * See README for licensing and copyright details
    4  * 
    5  * Ported to FreeBSD by Jean-Sébastien Pédron <jspedron@club-internet.fr>
    6  * 
    7  * $FreeBSD$
    8  */
    9 
   10 #include <gnu/fs/reiserfs/reiserfs_fs.h>
   11 
   12 /* -------------------------------------------------------------------
   13  * Stat data functions
   14  * -------------------------------------------------------------------*/
   15 
   16 static int
   17 sd_bytes_number(struct item_head *ih, int block_size)
   18 { 
   19 
   20         return (0);
   21 }
   22 
   23 struct item_operations stat_data_ops = {
   24         .bytes_number      = sd_bytes_number,
   25         //.decrement_key     = sd_decrement_key,
   26         //.is_left_mergeable = sd_is_left_mergeable,
   27         //.print_item        = sd_print_item,
   28         //.check_item        = sd_check_item,
   29 
   30         //.create_vi         = sd_create_vi,
   31         //.check_left        = sd_check_left,
   32         //.check_right       = sd_check_right,
   33         //.part_size         = sd_part_size,
   34         //.unit_num          = sd_unit_num,
   35         //.print_vi          = sd_print_vi
   36 };
   37 
   38 /* -------------------------------------------------------------------
   39  * Direct item functions
   40  * -------------------------------------------------------------------*/
   41 
   42 static int
   43 direct_bytes_number(struct item_head *ih, int block_size)
   44 {
   45 
   46         return (ih_item_len(ih));
   47 }
   48 
   49 struct item_operations direct_ops = {
   50         .bytes_number      = direct_bytes_number,
   51         //.decrement_key     = direct_decrement_key,
   52         //.is_left_mergeable = direct_is_left_mergeable,
   53         //.print_item        = direct_print_item,
   54         //.check_item        = direct_check_item,
   55 
   56         //.create_vi         = direct_create_vi,
   57         //.check_left        = direct_check_left,
   58         //.check_right       = direct_check_right,
   59         //.part_size         = direct_part_size,
   60         //.unit_num          = direct_unit_num,
   61         //.print_vi          = direct_print_vi
   62 };
   63 
   64 /* -------------------------------------------------------------------
   65  * Indirect item functions
   66  * -------------------------------------------------------------------*/
   67 
   68 static int
   69 indirect_bytes_number(struct item_head *ih, int block_size)
   70 {
   71 
   72         return (ih_item_len(ih) / UNFM_P_SIZE * block_size);
   73 }
   74 
   75 struct item_operations indirect_ops = {
   76         .bytes_number      = indirect_bytes_number,
   77         //.decrement_key     = indirect_decrement_key,
   78         //.is_left_mergeable = indirect_is_left_mergeable,
   79         //.print_item        = indirect_print_item,
   80         //.check_item        = indirect_check_item,
   81 
   82         //.create_vi         = indirect_create_vi,
   83         //.check_left        = indirect_check_left,
   84         //.check_right       = indirect_check_right,
   85         //.part_size         = indirect_part_size,
   86         //.unit_num          = indirect_unit_num,
   87         //.print_vi          = indirect_print_vi
   88 };
   89 
   90 /* -------------------------------------------------------------------
   91  * Direntry functions
   92  * -------------------------------------------------------------------*/
   93 
   94 static int
   95 direntry_bytes_number(struct item_head *ih, int block_size)
   96 {
   97 
   98         reiserfs_log(LOG_WARNING, "bytes number is asked for direntry\n");
   99         return (0);
  100 }
  101 
  102 struct item_operations direntry_ops = {
  103         .bytes_number      = direntry_bytes_number,
  104         //.decrement_key     = direntry_decrement_key,
  105         //.is_left_mergeable = direntry_is_left_mergeable,
  106         //.print_item        = direntry_print_item,
  107         //.check_item        = direntry_check_item,
  108 
  109         //.create_vi         = direntry_create_vi,
  110         //.check_left        = direntry_check_left,
  111         //.check_right       = direntry_check_right,
  112         //.part_size         = direntry_part_size,
  113         //.unit_num          = direntry_unit_num,
  114         //.print_vi          = direntry_print_vi
  115 };
  116 
  117 /* -------------------------------------------------------------------
  118  * Error catching functions to catch errors caused by incorrect item
  119  * types.
  120  * -------------------------------------------------------------------*/
  121 
  122 static int
  123 errcatch_bytes_number(struct item_head *ih, int block_size)
  124 {
  125 
  126         reiserfs_log(LOG_WARNING, "invalid item type observed, run fsck ASAP");
  127         return (0);
  128 }
  129 
  130 struct item_operations errcatch_ops = {
  131         errcatch_bytes_number,
  132         //errcatch_decrement_key,
  133         //errcatch_is_left_mergeable,
  134         //errcatch_print_item,
  135         //errcatch_check_item,
  136 
  137         //errcatch_create_vi,
  138         //errcatch_check_left,
  139         //errcatch_check_right,
  140         //errcatch_part_size,
  141         //errcatch_unit_num,
  142         //errcatch_print_vi
  143 };
  144 
  145 #if !(TYPE_STAT_DATA == 0 && TYPE_INDIRECT == 1 &&                      \
  146     TYPE_DIRECT == 2 && TYPE_DIRENTRY == 3)
  147 #error
  148 #endif
  149 
  150 struct item_operations *item_ops[TYPE_ANY + 1] = {
  151         &stat_data_ops,
  152         &indirect_ops,
  153         &direct_ops,
  154         &direntry_ops,
  155         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  156         &errcatch_ops /* This is to catch errors with invalid type (15th
  157                          entry for TYPE_ANY) */
  158 };

Cache object: 5e1fed8147da91eb35966079ac7a1c0d


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.