#include <fstream>
#include "roast/lexical/string_rule.hpp"
+#include "roast/math/endian.hpp"
namespace roast
{
// System Descriptor (32byte)
str_ELTORITOSPEC, // String 23byte
- soft_repeat< unibyte<0>, 9 >, // Padding (9byte)
- soft_repeat< unibyte<0>, 32 > // Volume Discriminator (32byte)
+ soft_repeat< unibyte<0>, 9 >, // Zero Padding (9byte)
+
+ // Volume Discriminator - Zero Padding (32byte)
+ soft_repeat< unibyte<0>, 32 >,
+
+ // [El Torito Only] Boot Record Volume Descriptor
+ fixed_uint< fixed_little_endian<unsigned int, 18 >::value > // 18 Sector
> _volume_desc;
// rule
typedef seq<
- soft_repeat< unibyte<0>, 0x8800 >,
+ soft_repeat< unibyte<0>, 0x8800 >, // Zero Padding 17 Sectors (1 Sector = 2048byte)
_volume_desc
> rule;
>>>>>>> 63d7ba7... eltorito.hpp: とりあえず「Boot Record Volume Descriptor」の手前まで