13e12c5d1SDavid du Colombier #include <u.h>
23e12c5d1SDavid du Colombier #include <libc.h>
3bd389b36SDavid du Colombier #include <bio.h>
43e12c5d1SDavid du Colombier #include <mach.h>
53e12c5d1SDavid du Colombier
63e12c5d1SDavid du Colombier int
size(char * file)73e12c5d1SDavid du Colombier size(char *file)
83e12c5d1SDavid du Colombier {
93e12c5d1SDavid du Colombier int fd;
103e12c5d1SDavid du Colombier Fhdr f;
113e12c5d1SDavid du Colombier
123e12c5d1SDavid du Colombier if((fd = open(file, OREAD)) < 0){
133e12c5d1SDavid du Colombier fprint(2, "size: ");
143e12c5d1SDavid du Colombier perror(file);
153e12c5d1SDavid du Colombier return 1;
163e12c5d1SDavid du Colombier }
173e12c5d1SDavid du Colombier if(crackhdr(fd, &f)) {
18219b2ee8SDavid du Colombier print("%ldt + %ldd + %ldb = %ld\t%s\n", f.txtsz, f.datsz,
19219b2ee8SDavid du Colombier f.bsssz, f.txtsz+f.datsz+f.bsssz, file);
203e12c5d1SDavid du Colombier close(fd);
213e12c5d1SDavid du Colombier return 0;
223e12c5d1SDavid du Colombier }
233e12c5d1SDavid du Colombier fprint(2, "size: %s not an a.out\n", file);
243e12c5d1SDavid du Colombier close(fd);
253e12c5d1SDavid du Colombier return 1;
263e12c5d1SDavid du Colombier }
27*7dd7cddfSDavid du Colombier
28*7dd7cddfSDavid du Colombier void
main(int argc,char * argv[])29*7dd7cddfSDavid du Colombier main(int argc, char *argv[])
30*7dd7cddfSDavid du Colombier {
31*7dd7cddfSDavid du Colombier char *err;
32*7dd7cddfSDavid du Colombier int i;
33*7dd7cddfSDavid du Colombier
34*7dd7cddfSDavid du Colombier ARGBEGIN {
35*7dd7cddfSDavid du Colombier default:
36*7dd7cddfSDavid du Colombier fprint(2, "usage: size [a.out ...]\n");
37*7dd7cddfSDavid du Colombier exits("usage");
38*7dd7cddfSDavid du Colombier } ARGEND;
39*7dd7cddfSDavid du Colombier
40*7dd7cddfSDavid du Colombier err = 0;
41*7dd7cddfSDavid du Colombier if(argc == 0)
42*7dd7cddfSDavid du Colombier if(size("8.out"))
43*7dd7cddfSDavid du Colombier err = "error";
44*7dd7cddfSDavid du Colombier for(i=0; i<argc; i++)
45*7dd7cddfSDavid du Colombier if(size(argv[i]))
46*7dd7cddfSDavid du Colombier err = "error";
47*7dd7cddfSDavid du Colombier exits(err);
48*7dd7cddfSDavid du Colombier }
49