54 lines · 994 B · C
RawDownload
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*);