view src/file.h @ 51:ccd59cd9ee45

author Takahiro SHIMIZU <>
date Mon, 17 Dec 2018 19:48:57 +0900
parents 83c23a36980d
children 1a64b5645cdd
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);

extern struct devsw devsw[];

#define CONSOLE 1