mirror of
https://github.com/vivier/EMILE.git
synced 2024-10-11 07:23:40 +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…
Reference in New Issue
Block a user