This source file includes following definitions.
- ultrix_partition
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 #include "check.h"
  11 #include "ultrix.h"
  12 
  13 int ultrix_partition(struct parsed_partitions *state)
  14 {
  15         int i;
  16         Sector sect;
  17         unsigned char *data;
  18         struct ultrix_disklabel {
  19                 s32     pt_magic;       
  20                 s32     pt_valid;       
  21                 struct  pt_info {
  22                         s32             pi_nblocks; 
  23                         u32             pi_blkoff;  
  24                 } pt_part[8];
  25         } *label;
  26 
  27 #define PT_MAGIC        0x032957        
  28 #define PT_VALID        1               
  29 
  30         data = read_part_sector(state, (16384 - sizeof(*label))/512, §);
  31         if (!data)
  32                 return -1;
  33         
  34         label = (struct ultrix_disklabel *)(data + 512 - sizeof(*label));
  35 
  36         if (label->pt_magic == PT_MAGIC && label->pt_valid == PT_VALID) {
  37                 for (i=0; i<8; i++)
  38                         if (label->pt_part[i].pi_nblocks)
  39                                 put_partition(state, i+1, 
  40                                               label->pt_part[i].pi_blkoff,
  41                                               label->pt_part[i].pi_nblocks);
  42                 put_dev_sector(sect);
  43                 strlcat(state->pp_buf, "\n", PAGE_SIZE);
  44                 return 1;
  45         } else {
  46                 put_dev_sector(sect);
  47                 return 0;
  48         }
  49 }