VirtualBox

Changeset 67840 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Jul 6, 2017 4:28:35 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116776
Message:

IPRT/isomaker: Made ISO9660_RRIP_ER_LEN more compile time assertion friendly. Use ISO9660*XX_LEN macros in structure size assertions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/formats/iso9660.h

    r67838 r67840  
    928928typedef ISO9660SUSPHDR const *PCISO9660SUSPHDR;
    929929
     930
    930931/**
    931932 * SUSP continuation entry (CE).
     
    942943    ISO9660U32          cbData;
    943944} ISO9660SUSPCE;
    944 AssertCompileSize(ISO9660SUSPCE, 28);
    945945/** Pointer to a SUSP continuation entry. */
    946946typedef ISO9660SUSPCE *PISO9660SUSPCE;
     
    951951#define ISO9660SUSPCE_LEN      28  /**< SUSP continutation entry length. */
    952952#define ISO9660SUSPCE_VER       1  /**< SUSP continutation entry version number. */
     953AssertCompileSize(ISO9660SUSPCE, ISO9660SUSPCE_LEN);
     954
    953955
    954956/**
     
    970972#define ISO9660SUSPPD_VER       1  /**< SUSP padding entry version number. */
    971973
     974
    972975/**
    973976 * SUSP system use protocol entry (SP)
     
    988991    uint8_t             cbSkip;
    989992} ISO9660SUSPSP;
    990 AssertCompileSize(ISO9660SUSPSP, 7);
    991993/** Pointer to a SUSP entry. */
    992994typedef ISO9660SUSPSP *PISO9660SUSPSP;
     
    9991001#define ISO9660SUSPSP_CHECK1    UINT8_C(0xbe)   /**< SUSP system use protocol entry check byte 1. */
    10001002#define ISO9660SUSPSP_CHECK2    UINT8_C(0xef)   /**< SUSP system use protocol entry check byte 2. */
     1003AssertCompileSize(ISO9660SUSPSP, ISO9660SUSPSP_LEN);
     1004
    10011005
    10021006/**
     
    10111015    ISO9660SUSPHDR      Hdr;
    10121016} ISO9660SUSPST;
    1013 AssertCompileSize(ISO9660SUSPST, 4);
    10141017/** Pointer to a SUSP padding entry. */
    10151018typedef ISO9660SUSPST *PISO9660SUSPST;
     
    10201023#define ISO9660SUSPST_VER       1              /**< SUSP system use protocol entry version number. */
    10211024#define ISO9660SUSPST_LEN       4              /**< SUSP system use protocol entry length (fixed). */
     1025AssertCompileSize(ISO9660SUSPST, ISO9660SUSPST_LEN);
     1026
    10221027
    10231028/**
     
    10431048    char                achPayload[RT_FLEXIBLE_ARRAY_IN_NESTED_UNION];
    10441049} ISO9660SUSPER;
    1045 AssertCompileMemberOffset(ISO9660SUSPER, achPayload, 8);
    10461050/** Pointer to a SUSP padding entry. */
    10471051typedef ISO9660SUSPER *PISO9660SUSPER;
     
    10511055#define ISO9660SUSPER_SIG2     'R'             /**< SUSP extension record entry signature byte 2. */
    10521056#define ISO9660SUSPER_VER       1              /**< SUSP extension record entry version number. */
     1057#define ISO9660SUSPER_OFF_PAYLOAD 8            /**< SUSP extension record entry payload member offset. */
     1058AssertCompileMemberOffset(ISO9660SUSPER, achPayload, ISO9660SUSPER_OFF_PAYLOAD);
    10531059
    10541060/**
     
    10641070    uint8_t             iFirstExtension;
    10651071} ISO9660SUSPES;
    1066 AssertCompileSize(ISO9660SUSPES, 5);
    10671072/** Pointer to a SUSP padding entry. */
    10681073typedef ISO9660SUSPES *PISO9660SUSPES;
     
    10731078#define ISO9660SUSPES_VER       1              /**< SUSP extension sequence entry version number. */
    10741079#define ISO9660SUSPES_LEN       5              /**< SUSP extension sequence entry length (fixed). */
     1080AssertCompileSize(ISO9660SUSPES, ISO9660SUSPES_LEN);
    10751081
    10761082
     
    10841090 * The record must be constructed using ISO9660_RRIP_ID, ISO9660_RRIP_DESC
    10851091 * and ISO9660_RRIP_SRC. */
    1086 #define ISO9660_RRIP_ER_LEN     ((uint8_t)(  RT_OFFSETOF(ISO9660SUSPER, achPayload) \
     1092#define ISO9660_RRIP_ER_LEN     ((uint8_t)(  ISO9660SUSPER_OFF_PAYLOAD \
    10871093                                           + sizeof(ISO9660_RRIP_ID)   - 1 \
    10881094                                           + sizeof(ISO9660_RRIP_DESC) - 1 \
     
    10981104 * The record must be constructed using ISO9660_RRIP_1_12_ID,
    10991105 * ISO9660_RRIP_1_12_DESC and ISO9660_RRIP_1_12_SRC. */
    1100 #define ISO9660_RRIP_1_12_ER_LEN ((uint8_t)(  RT_OFFSETOF(ISO9660SUSPER, achPayload) \
     1106#define ISO9660_RRIP_1_12_ER_LEN ((uint8_t)(  ISO9660SUSPER_OFF_PAYLOAD \
    11011107                                            + sizeof(ISO9660_RRIP_1_12_ID)   - 1 \
    11021108                                            + sizeof(ISO9660_RRIP_1_12_DESC) - 1 \
     
    11151121    uint8_t             fFlags;
    11161122} ISO9660RRIPRR;
    1117 AssertCompileSize(ISO9660RRIPRR, 5);
    11181123/** Pointer to a RRIP RR entry. */
    11191124typedef ISO9660RRIPRR *PISO9660RRIPRR;
     
    11241129#define ISO9660RRIPRR_VER       1              /**< RRIP RR entry version number. */
    11251130#define ISO9660RRIPRR_LEN       5              /**< RRIP RR entry length (fixed). */
     1131AssertCompileSize(ISO9660RRIPRR, ISO9660RRIPRR_LEN);
    11261132
    11271133/** @name ISO9660RRIP_RR_F_XXX - Indicates which RRIP entries are present.
     
    11561162    ISO9660U32          INode;
    11571163} ISO9660RRIPPX;
    1158 AssertCompileSize(ISO9660RRIPPX, 44);
    11591164/** Pointer to a RRIP posix attribute entry. */
    11601165typedef ISO9660RRIPPX *PISO9660RRIPPX;
     
    11651170#define ISO9660RRIPPX_VER       1              /**< RRIP posix attribute entry version number. */
    11661171#define ISO9660RRIPPX_LEN       44             /**< RRIP posix attribute entry length (fixed). */
     1172AssertCompileSize(ISO9660RRIPPX, ISO9660RRIPPX_LEN);
    11671173
    11681174
     
    12351241    ISO9660U32          Minor;
    12361242} ISO9660RRIPPN;
    1237 AssertCompileSize(ISO9660RRIPPN, 20);
    12381243/** Pointer to a RRIP posix attribute entry. */
    12391244typedef ISO9660RRIPPN *PISO9660RRIPPN;
     
    12441249#define ISO9660RRIPPN_VER       1              /**< RRIP posix device number entry version number. */
    12451250#define ISO9660RRIPPN_LEN       20             /**< RRIP posix device number entry length (fixed). */
     1251AssertCompileSize(ISO9660RRIPPN, ISO9660RRIPPN_LEN);
    12461252
    12471253/**
     
    13481354    ISO9660U32          offExtend;
    13491355} ISO9660RRIPCL;
    1350 AssertCompileSize(ISO9660RRIPCL, 12);
    13511356/** Pointer to a RRIP child link entry. */
    13521357typedef ISO9660RRIPCL *PISO9660RRIPCL;
     
    13571362#define ISO9660RRIPCL_VER       1              /**< RRIP child link entry version number. */
    13581363#define ISO9660RRIPCL_LEN       12             /**< RRIP child link entry length. */
     1364AssertCompileSize(ISO9660RRIPCL, ISO9660RRIPCL_LEN);
    13591365
    13601366
     
    13771383    ISO9660U32          offExtend;
    13781384} ISO9660RRIPPL;
    1379 AssertCompileSize(ISO9660RRIPPL, 12);
    13801385/** Pointer to a RRIP parent link entry. */
    13811386typedef ISO9660RRIPPL *PISO9660RRIPPL;
     
    13861391#define ISO9660RRIPPL_VER       1              /**< RRIP parent link entry version number. */
    13871392#define ISO9660RRIPPL_LEN       12             /**< RRIP parent link entry length. */
     1393AssertCompileSize(ISO9660RRIPPL, ISO9660RRIPPL_LEN);
    13881394
    13891395
     
    14011407    ISO9660SUSPHDR      Hdr;
    14021408} ISO9660RRIPRE;
    1403 AssertCompileSize(ISO9660RRIPRE, 4);
    14041409/** Pointer to a RRIP parent link entry. */
    14051410typedef ISO9660RRIPRE *PISO9660RRIPRE;
     
    14101415#define ISO9660RRIPRE_VER       1              /**< RRIP relocated entry version number. */
    14111416#define ISO9660RRIPRE_LEN       4              /**< RRIP relocated entry length. */
     1417AssertCompileSize(ISO9660RRIPRE, ISO9660RRIPRE_LEN);
    14121418
    14131419
     
    14291435} ISO9660RRIPSF;
    14301436#pragma pack()
    1431 AssertCompileSize(ISO9660RRIPSF, 21);
    14321437/** Pointer to a RRIP symbolic link entry. */
    14331438typedef ISO9660RRIPSF *PISO9660RRIPSF;
     
    14381443#define ISO9660RRIPSF_VER       1              /**< RRIP spare file entry version number. */
    14391444#define ISO9660RRIPSF_LEN       21             /**< RRIP spare file entry length. */
     1445AssertCompileSize(ISO9660RRIPSF, ISO9660RRIPSF_LEN);
    14401446
    14411447/** @name ISO9660RRIP_SF_TAB_F_XXX - Sparse table format.
     
    14651471    ISO9660SUSPER   ER;     /**< SUSP extension record entry. */
    14661472    ISO9660SUSPES   ES;     /**< SUSP extension sequence entry. */
     1473    ISO9660RRIPRR   RR;     /**< RRIP optimization entry. */
    14671474    ISO9660RRIPPX   PX;     /**< RRIP posix attribute entry. */
    14681475    ISO9660RRIPTF   TF;     /**< RRIP timestamp entry. */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette