Files
uiuc-ece391-mp3/student-distrib/fs/unified_fs.h

34 lines
974 B
C

#ifndef _UNIFIED_FS_H_
#define _UNIFIED_FS_H_
#include "../lib/lib.h"
typedef struct {
int32_t (*open)(int32_t*, char*);
int32_t (*read)(int32_t*, uint32_t*, char*, uint32_t);
int32_t (*write)(int32_t*, uint32_t*, const char*, uint32_t);
int32_t (*ioctl)(int32_t*, uint32_t*, int32_t);
int32_t (*close)(int32_t*);
} unified_fs_interface_t;
typedef struct {
unified_fs_interface_t* interface;
int32_t inode;
uint32_t pos;
uint32_t flags;
} fd_array_t;
#define MAX_OPEN_FILES 8
#define FD_STDIN 0
#define FD_STDOUT 1
int32_t unified_init(fd_array_t* fd_array);
int32_t unified_open(fd_array_t* fd_array, const char* filename);
int32_t unified_read(fd_array_t* fd_array, int32_t fd, void* buf, int32_t nbytes);
int32_t unified_write(fd_array_t* fd_array, int32_t fd, const void* buf, int32_t nbytes);
int32_t unified_ioctl(fd_array_t* fd_array, int32_t fd, int32_t op);
int32_t unified_close(fd_array_t* fd_array, int32_t fd);
#endif