xref: /plan9/sys/src/cmd/disk/prep/edit.h (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1 typedef struct Part Part;
2 struct Part {
3 	char *name;
4 	char *ctlname;
5 	vlong start;
6 	vlong end;
7 	vlong ctlstart;
8 	vlong ctlend;
9 	int changed;
10 };
11 
12 enum {
13 	Maxpart = 32
14 };
15 
16 typedef struct Edit Edit;
17 struct Edit {
18 	Disk *disk;
19 
20 	Part *ctlpart[Maxpart];
21 	int nctlpart;
22 
23 	Part *part[Maxpart];
24 	int npart;
25 
26 	char *(*add)(Edit*, char*, vlong, vlong);
27 	char *(*del)(Edit*, Part*);
28 	char *(*ext)(Edit*, int, char**);
29 	char *(*help)(Edit*);
30 	char *(*okname)(Edit*, char*);
31 	void (*sum)(Edit*, Part*, vlong, vlong);
32 	char *(*write)(Edit*);
33 	void (*printctl)(Edit*, int);
34 
35 	char *unit;
36 	void *aux;
37 	vlong dot;
38 	vlong end;
39 
40 	/* do not use fields below this line */
41 	int changed;
42 	int warned;
43 	int lastcmd;
44 };
45 
46 char	*getline(Edit*);
47 void	runcmd(Edit*, char*);
48 Part	*findpart(Edit*, char*);
49 char	*addpart(Edit*, Part*);
50 char	*delpart(Edit*, Part*);
51 char *parseexpr(char *s, vlong xdot, vlong xdollar, vlong xsize, vlong *result);
52 int	ctldiff(Edit *edit, int ctlfd);
53 void *emalloc(ulong);
54 char *estrdup(char*);
55