40 #ifdef UNIV_MATERIALIZE 
   50 typedef byte            page_header_t;
 
   52 #define PAGE_HEADER     FSEG_PAGE_DATA   
   55 #define PAGE_N_DIR_SLOTS 0       
   56 #define PAGE_HEAP_TOP    2       
   60 #define PAGE_GARBAGE     8       
   61 #define PAGE_LAST_INSERT 10      
   64 #define PAGE_DIRECTION   12      
   65 #define PAGE_N_DIRECTION 14      
   67 #define PAGE_N_RECS      16      
   68 #define PAGE_MAX_TRX_ID  18      
   72 #define PAGE_HEADER_PRIV_END 26  
   78 #define PAGE_INDEX_ID    28      
   81 #define PAGE_BTR_SEG_LEAF 36     
   84 #define PAGE_BTR_IBUF_FREE_LIST PAGE_BTR_SEG_LEAF 
   85 #define PAGE_BTR_IBUF_FREE_LIST_NODE PAGE_BTR_SEG_LEAF 
   91 #define PAGE_BTR_SEG_TOP (36 + FSEG_HEADER_SIZE) 
   97 #define PAGE_DATA       (PAGE_HEADER + 36 + 2 * FSEG_HEADER_SIZE) 
  100 #define PAGE_OLD_INFIMUM        (PAGE_DATA + 1 + REC_N_OLD_EXTRA_BYTES) 
  103 #define PAGE_OLD_SUPREMUM       (PAGE_DATA + 2 + 2 * REC_N_OLD_EXTRA_BYTES + 8) 
  106 #define PAGE_OLD_SUPREMUM_END (PAGE_OLD_SUPREMUM + 9) 
  109 #define PAGE_NEW_INFIMUM        (PAGE_DATA + REC_N_NEW_EXTRA_BYTES) 
  112 #define PAGE_NEW_SUPREMUM       (PAGE_DATA + 2 * REC_N_NEW_EXTRA_BYTES + 8) 
  115 #define PAGE_NEW_SUPREMUM_END (PAGE_NEW_SUPREMUM + 8) 
  121 #define PAGE_HEAP_NO_INFIMUM    0        
  122 #define PAGE_HEAP_NO_SUPREMUM   1        
  123 #define PAGE_HEAP_NO_USER_LOW   2        
  131 #define PAGE_SAME_REC           3 
  132 #define PAGE_SAME_PAGE          4 
  133 #define PAGE_NO_DIRECTION       5 
  139 typedef byte                    page_dir_slot_t;
 
  140 typedef page_dir_slot_t         page_dir_t;
 
  145 #define PAGE_DIR                FIL_PAGE_DATA_END 
  148 #define PAGE_DIR_SLOT_SIZE      2 
  152 #define PAGE_EMPTY_DIR_START    (PAGE_DIR + 2 * PAGE_DIR_SLOT_SIZE) 
  157 #define PAGE_DIR_SLOT_MAX_N_OWNED       8 
  158 #define PAGE_DIR_SLOT_MIN_N_OWNED       4 
  168                 __attribute__((
const));
 
  177                 __attribute__((
const));
 
  235         __attribute__((nonnull, pure));
 
  239 #define page_header_get_ptr(page, field)                        \ 
  240         (page_header_get_offs(page, field)                      \ 
  241          ? page + page_header_get_offs(page, field) : NULL) 
  253 #ifndef UNIV_HOTBACKUP 
  282 #define page_get_infimum_rec(page) ((page) + page_get_infimum_offset(page)) 
  283 #define page_get_supremum_rec(page) ((page) + page_get_supremum_offset(page)) 
  295         __attribute__((nonnull, warn_unused_result));
 
  306         __attribute__((nonnull, warn_unused_result));
 
  308 #ifndef UNIV_HOTBACKUP 
  319         __attribute__((nonnull, warn_unused_result));
 
  338         ulint*          matched_fields, 
 
  341         ulint*          matched_bytes); 
 
  426 page_dir_get_nth_slot(
 
  431 # define page_dir_get_nth_slot(page, n)         \ 
  432         ((page) + UNIV_PAGE_SIZE - PAGE_DIR     \ 
  433          - (n + 1) * PAGE_DIR_SLOT_SIZE) 
  450         const page_dir_slot_t*  slot);  
 
  457         page_dir_slot_t* slot,  
 
  466         const page_dir_slot_t*  slot);  
 
  473         page_dir_slot_t*slot,   
 
  527         __attribute__((nonnull, pure));
 
  536         __attribute__((nonnull, pure));
 
  545         __attribute__((nonnull, pure));
 
  617         __attribute__((
const));
 
  626         __attribute__((
const));
 
  635         __attribute__((
const));
 
  645         __attribute__((
const));
 
  654         __attribute__((
const));
 
  664         __attribute__((
const));
 
  673 #ifndef UNIV_HOTBACKUP 
  684         __attribute__((nonnull));
 
  714                 __attribute__((
const));
 
  800         __attribute__((nonnull));
 
  810         __attribute__((nonnull(1,2)));
 
  849         __attribute__((nonnull));
 
  871         __attribute__((nonnull));
 
  888         __attribute__((nonnull));
 
  900         __attribute__((nonnull));
 
  921         __attribute__((nonnull(1, 2, 4, 5)));
 
  941         __attribute__((nonnull(1, 2, 4, 5)));
 
  952         __attribute__((nonnull(1)));
 
  965         __attribute__((nonnull(1)));
 
  994 #ifndef UNIV_HOTBACKUP 
 1004 # ifdef UNIV_BTR_PRINT 
 1105 #ifdef UNIV_MATERIALIZE 
 1107 #define UNIV_INLINE  UNIV_INLINE_ORIGINAL 
 1111 #include "page0page.ic"