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*); 73e12c5d1SDavid du Colombier 83e12c5d1SDavid du Colombier void 93e12c5d1SDavid du Colombier main(int argc, char *argv[]) 103e12c5d1SDavid du Colombier { 113e12c5d1SDavid du Colombier int err = 0; 123e12c5d1SDavid du Colombier 133e12c5d1SDavid du Colombier USED(argc); 143e12c5d1SDavid du Colombier if(*++argv == 0) 153e12c5d1SDavid du Colombier err |= size("v.out"); 163e12c5d1SDavid du Colombier else 173e12c5d1SDavid du Colombier while(*argv) 183e12c5d1SDavid du Colombier err |= size(*argv++); 193e12c5d1SDavid du Colombier if(err) 203e12c5d1SDavid du Colombier exits("error"); 213e12c5d1SDavid du Colombier else 223e12c5d1SDavid du Colombier exits(0); 233e12c5d1SDavid du Colombier } 243e12c5d1SDavid du Colombier 253e12c5d1SDavid du Colombier int 263e12c5d1SDavid du Colombier size(char *file) 273e12c5d1SDavid du Colombier { 283e12c5d1SDavid du Colombier int fd; 293e12c5d1SDavid du Colombier Fhdr f; 303e12c5d1SDavid du Colombier 313e12c5d1SDavid du Colombier if((fd = open(file, OREAD)) < 0){ 323e12c5d1SDavid du Colombier fprint(2, "size: "); 333e12c5d1SDavid du Colombier perror(file); 343e12c5d1SDavid du Colombier return 1; 353e12c5d1SDavid du Colombier } 363e12c5d1SDavid du Colombier if (crackhdr(fd, &f)) { 37*219b2ee8SDavid du Colombier print("%ldt + %ldd + %ldb = %ld\t%s\n",f.txtsz,f.datsz, 38*219b2ee8SDavid du Colombier f.bsssz, f.txtsz+f.datsz+f.bsssz, file); 393e12c5d1SDavid du Colombier close(fd); 403e12c5d1SDavid du Colombier return 0; 413e12c5d1SDavid du Colombier } 423e12c5d1SDavid du Colombier fprint(2, "size: %s not an a.out\n", file); 433e12c5d1SDavid du Colombier close(fd); 443e12c5d1SDavid du Colombier return 1; 453e12c5d1SDavid du Colombier } 46