Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

typedef struct Part Part;
struct Part {
        char *name;
        char *ctlname;
        vlong start;
        vlong end;
        vlong ctlstart;
        vlong ctlend;
        int changed;
};

enum {
        Maxpart = 32
};

typedef struct Edit Edit;
struct Edit {
        Disk *disk;

        Part *ctlpart[Maxpart];
        int nctlpart;

        Part *part[Maxpart];
        int npart;

        char *(*add)(Edit*, char*, vlong, vlong);
        char *(*del)(Edit*, Part*);
        char *(*ext)(Edit*, int, char**);
        char *(*help)(Edit*);
        char *(*okname)(Edit*, char*);
        void (*sum)(Edit*, Part*, vlong, vlong);
        char *(*write)(Edit*);
        void (*printctl)(Edit*, int);

        char *unit;
        void *aux;
        vlong dot;
        vlong end;

        /* do not use fields below this line */
        int changed;
        int warned;
        int lastcmd;
};

char    *getline(Edit*);
void    runcmd(Edit*, char*);
Part    *findpart(Edit*, char*);
char    *addpart(Edit*, Part*);
char    *delpart(Edit*, Part*);
char *parseexpr(char *s, vlong xdot, vlong xdollar, vlong xsize, vlong *result);
int     ctldiff(Edit *edit, int ctlfd);
void *emalloc(ulong);
char *estrdup(char*);