mirror of
https://github.com/vivier/EMILE.git
synced 2025-02-26 15:29:12 +00:00
first revision
This commit is contained in:
parent
d5fd341704
commit
48c114c2f2
44
libstream/libstream.h
Normal file
44
libstream/libstream.h
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
*
|
||||
* (c) 2005 Laurent Vivier <LaurentVivier@wanadoo.fr>
|
||||
*
|
||||
*/
|
||||
#ifndef __LIBSTREAM_H__
|
||||
#define __LIBSTREAM_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
typedef int (*stream_read_sector_t)(void *data,off_t offset, void* buffer, size_t size);
|
||||
typedef ssize_t (*stream_read_t)(void *data, void *buf, size_t count);
|
||||
typedef int (*stream_seek_t)(void *data, long offset, int whence);
|
||||
typedef int (*stream_close_t)(void *data);
|
||||
|
||||
typedef struct {
|
||||
void *data;
|
||||
stream_read_sector_t read_sector;
|
||||
stream_close_t close;
|
||||
} device_io_t;
|
||||
|
||||
typedef struct {
|
||||
void *data;
|
||||
stream_read_t read;
|
||||
stream_seek_t seek;
|
||||
stream_close_t close;
|
||||
} filesystem_io_t;
|
||||
|
||||
typedef struct {
|
||||
/* device interface */
|
||||
|
||||
device_io_t device;
|
||||
|
||||
/* filesystem interface */
|
||||
|
||||
filesystem_io_t fs;
|
||||
} stream_t;
|
||||
|
||||
extern stream_t *stream_open(char *dev);
|
||||
extern int stream_read_sector(stream_t *stream,
|
||||
off_t offset, void* buffer, size_t size);
|
||||
extern int stream_close(stream_t *stream);
|
||||
#endif /* __LIBSTREAM_H__ */
|
Loading…
x
Reference in New Issue
Block a user