17dd7cddfSDavid du Colombier typedef struct Part Part; 27dd7cddfSDavid du Colombier struct Part { 3*9a747e4fSDavid du Colombier char *name; 4*9a747e4fSDavid du Colombier char *ctlname; 57dd7cddfSDavid du Colombier vlong start; 67dd7cddfSDavid du Colombier vlong end; 780ee5cbfSDavid du Colombier vlong ctlstart; 880ee5cbfSDavid du Colombier vlong ctlend; 97dd7cddfSDavid du Colombier int changed; 107dd7cddfSDavid du Colombier }; 117dd7cddfSDavid du Colombier 127dd7cddfSDavid du Colombier enum { 137dd7cddfSDavid du Colombier Maxpart = 32 147dd7cddfSDavid du Colombier }; 157dd7cddfSDavid du Colombier 167dd7cddfSDavid du Colombier typedef struct Edit Edit; 177dd7cddfSDavid du Colombier struct Edit { 187dd7cddfSDavid du Colombier Disk *disk; 197dd7cddfSDavid du Colombier 207dd7cddfSDavid du Colombier Part *ctlpart[Maxpart]; 217dd7cddfSDavid du Colombier int nctlpart; 227dd7cddfSDavid du Colombier 237dd7cddfSDavid du Colombier Part *part[Maxpart]; 247dd7cddfSDavid du Colombier int npart; 257dd7cddfSDavid du Colombier 267dd7cddfSDavid du Colombier char *(*add)(Edit*, char*, vlong, vlong); 277dd7cddfSDavid du Colombier char *(*del)(Edit*, Part*); 287dd7cddfSDavid du Colombier char *(*ext)(Edit*, int, char**); 297dd7cddfSDavid du Colombier char *(*help)(Edit*); 307dd7cddfSDavid du Colombier char *(*okname)(Edit*, char*); 317dd7cddfSDavid du Colombier void (*sum)(Edit*, Part*, vlong, vlong); 327dd7cddfSDavid du Colombier char *(*write)(Edit*); 337dd7cddfSDavid du Colombier void (*printctl)(Edit*, int); 347dd7cddfSDavid du Colombier 3580ee5cbfSDavid du Colombier char *unit; 367dd7cddfSDavid du Colombier void *aux; 377dd7cddfSDavid du Colombier vlong dot; 3880ee5cbfSDavid du Colombier vlong end; 397dd7cddfSDavid du Colombier 407dd7cddfSDavid du Colombier /* do not use fields below this line */ 417dd7cddfSDavid du Colombier int changed; 427dd7cddfSDavid du Colombier int warned; 437dd7cddfSDavid du Colombier int lastcmd; 447dd7cddfSDavid du Colombier }; 457dd7cddfSDavid du Colombier 467dd7cddfSDavid du Colombier char *getline(Edit*); 477dd7cddfSDavid du Colombier void runcmd(Edit*, char*); 487dd7cddfSDavid du Colombier Part *findpart(Edit*, char*); 497dd7cddfSDavid du Colombier char *addpart(Edit*, Part*); 507dd7cddfSDavid du Colombier char *delpart(Edit*, Part*); 517dd7cddfSDavid du Colombier char *parseexpr(char *s, vlong xdot, vlong xdollar, vlong xsize, vlong *result); 527dd7cddfSDavid du Colombier int ctldiff(Edit *edit, int ctlfd); 5359cc4ca5SDavid du Colombier void *emalloc(ulong); 5459cc4ca5SDavid du Colombier char *estrdup(char*); 55