/* Retrieves the (current) offset * Returns 1 if successful or -1 on error */ int libexe_section_get_offset( libexe_section_t *section, off64_t *offset, libcerror_error_t **error ) { libexe_internal_section_t *internal_section = NULL; static char *function = "libexe_section_get_offset"; if( section == NULL ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_ARGUMENTS, LIBCERROR_ARGUMENT_ERROR_INVALID_VALUE, "%s: invalid section.", function ); return( -1 ); } internal_section = (libexe_internal_section_t *) section; if( internal_section->section_descriptor == NULL ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_RUNTIME, LIBCERROR_RUNTIME_ERROR_VALUE_MISSING, "%s: invalid section - missing section descriptor.", function ); return( -1 ); } if( libfdata_stream_get_offset( internal_section->section_descriptor->data_stream, offset, error ) != 1 ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_RUNTIME, LIBCERROR_RUNTIME_ERROR_GET_FAILED, "%s: unable to retrieve section data stream offset.", function ); return( -1 ); } return( 1 ); }
/* Retrieves the current offset * Returns the offset if successful or -1 on error */ int libfsntfs_data_stream_get_offset( libfsntfs_data_stream_t *data_stream, off64_t *offset, libcerror_error_t **error ) { libfsntfs_internal_data_stream_t *internal_data_stream = NULL; static char *function = "libfsntfs_data_stream_get_offset"; if( data_stream == NULL ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_ARGUMENTS, LIBCERROR_ARGUMENT_ERROR_INVALID_VALUE, "%s: invalid data stream.", function ); return( -1 ); } internal_data_stream = (libfsntfs_internal_data_stream_t *) data_stream; if( libfdata_stream_get_offset( internal_data_stream->data_cluster_block_stream, offset, error ) != 1 ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_RUNTIME, LIBCERROR_RUNTIME_ERROR_GET_FAILED, "%s: unable to retrieve offset from data cluster block stream.", function ); return( -1 ); } return( 1 ); }