%module odirectcmodule %{ #include "odirect.h" %} struct odirect_buffer { char *real_buffer; char *aligned_buffer; size_t maximum_buffer_size; size_t current_buffer_size; }; struct odirect_buffer *create_odirect_buffer(void); void destroy_odirect_buffer(struct odirect_buffer *odirect_buffer); void odirect_aligned_malloc(int usable_buffer_size, int align_to, struct odirect_buffer *odirect_buffer); void odirect_aligned_free(struct odirect_buffer *odirect_buffer); int odirect_open(char *filename, char *ASCII_flags); char *odirect_read(int file_descriptor, struct odirect_buffer *odirect_buffer); int odirect_close(int file_descriptor);