1
0

edit.h 994 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. enum {
  12. Maxpart = 32
  13. };
  14. typedef struct Edit Edit;
  15. struct Edit {
  16. Disk *disk;
  17. Part *ctlpart[Maxpart];
  18. int nctlpart;
  19. Part *part[Maxpart];
  20. int npart;
  21. char *(*add)(Edit*, char*, vlong, vlong);
  22. char *(*del)(Edit*, Part*);
  23. char *(*ext)(Edit*, int, char**);
  24. char *(*help)(Edit*);
  25. char *(*okname)(Edit*, char*);
  26. void (*sum)(Edit*, Part*, vlong, vlong);
  27. char *(*write)(Edit*);
  28. void (*printctl)(Edit*, int);
  29. char *unit;
  30. void *aux;
  31. vlong dot;
  32. vlong end;
  33. /* do not use fields below this line */
  34. int changed;
  35. int warned;
  36. int lastcmd;
  37. };
  38. char *getline(Edit*);
  39. void runcmd(Edit*, char*);
  40. Part *findpart(Edit*, char*);
  41. char *addpart(Edit*, Part*);
  42. char *delpart(Edit*, Part*);
  43. char *parseexpr(char *s, vlong xdot, vlong xdollar, vlong xsize, vlong *result);
  44. int ctldiff(Edit *edit, int ctlfd);
  45. void *emalloc(ulong);
  46. char *estrdup(char*);