view src/file.h @ 94:d876c9a65239 default tip

impl mac os target
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Wed, 23 Oct 2019 14:31:38 +0900
parents 7a63dacab7f8
children
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