#ifndef __CDIO_COMPAT_READ__ #define __CDIO_COMPAT_READ__ #include "cdio/compat/device.h" #include "cdio/read.h" #include "unistd.h" // FFI-compatible wrappings typedef enum { WHENCE_SEEK_START = SEEK_SET, WHENCE_SEEK_CURRENT = SEEK_CUR, WHENCE_SEEK_END = SEEK_END } whence_t; // Marshalling aids void read_bytes(const CdIo_t*, void**, ssize_t*, size_t); driver_return_code_t read_sector(const CdIo_t*, void**, uint32_t*, lsn_t, cdio_read_mode_t); driver_return_code_t read_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, cdio_read_mode_t, uint32_t); driver_return_code_t read_data_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, uint16_t, uint32_t); driver_return_code_t read_audio_sector(const CdIo_t*, void**, uint32_t*, lsn_t); driver_return_code_t read_audio_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, uint32_t); driver_return_code_t read_mode1_sector(const CdIo_t*, void**, uint32_t*, lsn_t, bool); driver_return_code_t read_mode1_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, bool, uint32_t); driver_return_code_t read_mode2_sector(const CdIo_t*, void**, uint32_t*, lsn_t, bool); driver_return_code_t read_mode2_sectors(const CdIo_t*, void**, uint32_t*, lsn_t, bool, uint32_t); #endif