Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'''
Generate a string representing the Rock Ridge Child Link record.
Parameters:
None.
Returns:
String containing the Rock Ridge record.
'''
if not self._initialized:
raise pycdlibexception.PyCdlibInternalError('CL record not initialized')
return b'CL' + struct.pack(self.FMT,
RRCLRecord.length(),
SU_ENTRY_VERSION,
self.child_log_block_num,
utils.swab_32bit(self.child_log_block_num))
Returns:
Nothing.
'''
if self._initialized:
raise pycdlibexception.PyCdlibInternalError('PN record already initialized')
(su_len, su_entry_version_unused, dev_t_high_le, dev_t_high_be,
dev_t_low_le, dev_t_low_be) = struct.unpack_from(self.FMT, rrstr[:20], 2)
# We assume that the caller has already checked the su_entry_version,
# so we don't bother.
if su_len != RRPNRecord.length():
raise pycdlibexception.PyCdlibInvalidISO('Invalid length on rock ridge extension')
if dev_t_high_le != utils.swab_32bit(dev_t_high_be):
raise pycdlibexception.PyCdlibInvalidISO('Dev_t high little-endian does not match big-endian')
if dev_t_low_le != utils.swab_32bit(dev_t_low_be):
raise pycdlibexception.PyCdlibInvalidISO('Dev_t low little-endian does not match big-endian')
self.dev_t_high = dev_t_high_le
self.dev_t_low = dev_t_low_le
self._initialized = True
Generate a string representing the Rock Ridge POSIX Device Number
record.
Parameters:
None.
Returns:
String containing the Rock Ridge record.
'''
if not self._initialized:
raise pycdlibexception.PyCdlibInternalError('PN record not initialized')
return b'PN' + struct.pack(self.FMT,
RRPNRecord.length(),
SU_ENTRY_VERSION,
self.dev_t_high,
utils.swab_32bit(self.dev_t_high),
self.dev_t_low,
utils.swab_32bit(self.dev_t_low))
if not self._initialized:
raise pycdlibexception.PyCdlibInternalError('This Volume Descriptor is not initialized')
vol_mod_date = dates.VolumeDescriptorDate()
vol_mod_date.new(time.time())
return struct.pack(self.FMT,
self._vd_type,
b'CD001',
self.version,
self.flags,
self.system_identifier,
self.volume_identifier,
0,
self.space_size,
utils.swab_32bit(self.space_size),
self.escape_sequences,
self.set_size,
utils.swab_16bit(self.set_size),
self.seqnum,
utils.swab_16bit(self.seqnum),
self.log_block_size,
utils.swab_16bit(self.log_block_size),
self.path_tbl_size,
utils.swab_32bit(self.path_tbl_size),
self.path_table_location_le,
self.optional_path_table_location_le,
utils.swab_32bit(self.path_table_location_be),
self.optional_path_table_location_be,
self.root_dir_record.record(),
self.volume_set_identifier,
self.publisher_identifier.record(),
Parameters:
None.
Returns:
String containing the Rock Ridge record.
'''
if not self._initialized:
raise pycdlibexception.PyCdlibInternalError('CE record not initialized')
return b'CE' + struct.pack(self.FMT,
RRCERecord.length(),
SU_ENTRY_VERSION,
self.bl_cont_area,
utils.swab_32bit(self.bl_cont_area),
self.offset_cont_area,
utils.swab_32bit(self.offset_cont_area),
self.len_cont_area,
utils.swab_32bit(self.len_cont_area))
None.
Returns:
String containing the Rock Ridge record.
'''
if not self._initialized:
raise pycdlibexception.PyCdlibInternalError('CE record not initialized')
return b'CE' + struct.pack(self.FMT,
RRCERecord.length(),
SU_ENTRY_VERSION,
self.bl_cont_area,
utils.swab_32bit(self.bl_cont_area),
self.offset_cont_area,
utils.swab_32bit(self.offset_cont_area),
self.len_cont_area,
utils.swab_32bit(self.len_cont_area))
rr_version - The Rock Ridge version to use.
Returns:
String containing the Rock Ridge record.
'''
if not self._initialized:
raise pycdlibexception.PyCdlibInternalError('PX record not initialized')
outlist = [b'PX', struct.pack(self.FMT, RRPXRecord.length(rr_version),
SU_ENTRY_VERSION, self.posix_file_mode,
utils.swab_32bit(self.posix_file_mode),
self.posix_file_links,
utils.swab_32bit(self.posix_file_links),
self.posix_user_id,
utils.swab_32bit(self.posix_user_id),
self.posix_group_id,
utils.swab_32bit(self.posix_group_id))]
if rr_version == '1.12':
outlist.append(struct.pack('
self.version,
self.flags,
self.system_identifier,
self.volume_identifier,
0,
self.space_size,
utils.swab_32bit(self.space_size),
self.escape_sequences,
self.set_size,
utils.swab_16bit(self.set_size),
self.seqnum,
utils.swab_16bit(self.seqnum),
self.log_block_size,
utils.swab_16bit(self.log_block_size),
self.path_tbl_size,
utils.swab_32bit(self.path_tbl_size),
self.path_table_location_le,
self.optional_path_table_location_le,
utils.swab_32bit(self.path_table_location_be),
self.optional_path_table_location_be,
self.root_dir_record.record(),
self.volume_set_identifier,
self.publisher_identifier.record(),
self.preparer_identifier.record(),
self.application_identifier.record(),
self.copyright_file_identifier,
self.abstract_file_identifier,
self.bibliographic_file_identifier,
self.volume_creation_date.record(),
vol_mod_date.record(),
self.volume_expiration_date.record(),
self.volume_effective_date.record(),
self.volume_identifier,
0,
self.space_size,
utils.swab_32bit(self.space_size),
self.escape_sequences,
self.set_size,
utils.swab_16bit(self.set_size),
self.seqnum,
utils.swab_16bit(self.seqnum),
self.log_block_size,
utils.swab_16bit(self.log_block_size),
self.path_tbl_size,
utils.swab_32bit(self.path_tbl_size),
self.path_table_location_le,
self.optional_path_table_location_le,
utils.swab_32bit(self.path_table_location_be),
self.optional_path_table_location_be,
self.root_dir_record.record(),
self.volume_set_identifier,
self.publisher_identifier.record(),
self.preparer_identifier.record(),
self.application_identifier.record(),
self.copyright_file_identifier,
self.abstract_file_identifier,
self.bibliographic_file_identifier,
self.volume_creation_date.record(),
vol_mod_date.record(),
self.volume_expiration_date.record(),
self.volume_effective_date.record(),
self.file_structure_version, 0, self.application_use,
b'\x00' * 653)