view src/file.h @ 29:a672d603ccb2

author mir3636
date Fri, 18 Jan 2019 10:04:37 +0900
parents 1a64b5645cdd
children 96a5833d0d82
line wrap: on
line source

struct file {
    enum { FD_NONE, FD_PIPE, FD_INODE } type;
    int          ref;   // reference count
    char         readable;
    char         writable;
    struct pipe  *pipe;
    struct inode *ip;
    uint         off;

// in-memory copy of an inode
struct inode {
    uint    dev;        // Device number
    uint    inum;       // Inode number
    int     ref;        // Reference count
    int     flags;      // I_BUSY, I_VALID

    short   type;       // copy of disk inode
    short   major;
    short   minor;
    short   nlink;
    uint    size;
    uint    addrs[NDIRECT+1];
#define I_BUSY 0x1
#define I_VALID 0x2

// table mapping major device number to
// device functions
struct devsw {
    int (*read) (struct inode*, char*, int);
    int (*write)(struct inode*, char*, int);

struct cbc_devsw {
    __code (*read) (struct inode*, char*, int, __code (*)(int));
    //__code (*write)(struct inode*, char*, int, __code (*)(int));

extern struct devsw devsw[];
extern struct cbc_devsw cbc_devsw[];

#define CONSOLE 1