LCOV - code coverage report
Current view: top level - lkbce/fs/isofs - rock.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 15 15 100.0 %
Date: 2017-01-25 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  * These structs are used by the system-use-sharing protocol, in which the
       3             :  * Rock Ridge extensions are embedded.  It is quite possible that other
       4             :  * extensions are present on the disk, and this is fine as long as they
       5             :  * all use SUSP
       6             :  */
       7             : 
       8             : struct SU_SP_s {
       9             :         unsigned char magic[2];
      10             :         unsigned char skip;
      11             : } __attribute__ ((packed));
      12           1 : 
      13             : struct SU_CE_s {
      14             :         char extent[8];
      15             :         char offset[8];
      16             :         char size[8];
      17             : };
      18           1 : 
      19             : struct SU_ER_s {
      20             :         unsigned char len_id;
      21             :         unsigned char len_des;
      22             :         unsigned char len_src;
      23             :         unsigned char ext_ver;
      24             :         char data[0];
      25             : } __attribute__ ((packed));
      26           1 : 
      27             : struct RR_RR_s {
      28             :         char flags[1];
      29             : } __attribute__ ((packed));
      30           1 : 
      31             : struct RR_PX_s {
      32             :         char mode[8];
      33             :         char n_links[8];
      34             :         char uid[8];
      35             :         char gid[8];
      36             : };
      37           1 : 
      38             : struct RR_PN_s {
      39             :         char dev_high[8];
      40             :         char dev_low[8];
      41             : };
      42           1 : 
      43             : struct SL_component {
      44             :         unsigned char flags;
      45             :         unsigned char len;
      46             :         char text[0];
      47             : } __attribute__ ((packed));
      48           1 : 
      49             : struct RR_SL_s {
      50             :         unsigned char flags;
      51             :         struct SL_component link;
      52             : } __attribute__ ((packed));
      53           1 : 
      54             : struct RR_NM_s {
      55             :         unsigned char flags;
      56             :         char name[0];
      57             : } __attribute__ ((packed));
      58           1 : 
      59             : struct RR_CL_s {
      60             :         char location[8];
      61             : };
      62           1 : 
      63             : struct RR_PL_s {
      64             :         char location[8];
      65             : };
      66           1 : 
      67             : struct stamp {
      68             :         char time[7];
      69             : } __attribute__ ((packed));
      70           1 : 
      71             : struct RR_TF_s {
      72             :         char flags;
      73             :         struct stamp times[0];  /* Variable number of these beasts */
      74             : } __attribute__ ((packed));
      75           1 : 
      76             : /* Linux-specific extension for transparent decompression */
      77             : struct RR_ZF_s {
      78             :         char algorithm[2];
      79             :         char parms[2];
      80             :         char real_size[8];
      81             : };
      82           2 : 
      83             : /*
      84             :  * These are the bits and their meanings for flags in the TF structure.
      85             :  */
      86             : #define TF_CREATE 1
      87             : #define TF_MODIFY 2
      88             : #define TF_ACCESS 4
      89             : #define TF_ATTRIBUTES 8
      90             : #define TF_BACKUP 16
      91             : #define TF_EXPIRATION 32
      92             : #define TF_EFFECTIVE 64
      93             : #define TF_LONG_FORM 128
      94             : 
      95             : struct rock_ridge {
      96             :         char signature[2];
      97             :         unsigned char len;
      98             :         unsigned char version;
      99             :         union {
     100             :                 struct SU_SP_s SP;
     101             :                 struct SU_CE_s CE;
     102             :                 struct SU_ER_s ER;
     103             :                 struct RR_RR_s RR;
     104             :                 struct RR_PX_s PX;
     105             :                 struct RR_PN_s PN;
     106             :                 struct RR_SL_s SL;
     107             :                 struct RR_NM_s NM;
     108             :                 struct RR_CL_s CL;
     109             :                 struct RR_PL_s PL;
     110             :                 struct RR_TF_s TF;
     111             :                 struct RR_ZF_s ZF;
     112             :         } u;
     113             : };
     114           1 : 
     115             : #define RR_PX 1                 /* POSIX attributes */
     116             : #define RR_PN 2                 /* POSIX devices */
     117             : #define RR_SL 4                 /* Symbolic link */
     118             : #define RR_NM 8                 /* Alternate Name */
     119             : #define RR_CL 16                /* Child link */
     120             : #define RR_PL 32                /* Parent link */
     121             : #define RR_RE 64                /* Relocation directory */
     122             : #define RR_TF 128               /* Timestamps */

Generated by: LCOV version 1.10