xref: /plan9/sys/src/cmd/disk/prep/edit.h (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
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