1 #include "lib9.h" 2 #include <a.out.h> 3 #include <dynld.h> 4 5 typedef struct Fd Fd; 6 struct Fd { 7 int fd; 8 }; 9 10 static long 11 readfd(void *a, void *buf, long nbytes) 12 { 13 return read(((Fd*)a)->fd, buf, nbytes); 14 } 15 16 static vlong 17 seekfd(void *a, vlong off, int t) 18 { 19 return seek(((Fd*)a)->fd, off, t); 20 } 21 22 static void 23 errfd(char *s) 24 { 25 werrstr("%s", s); 26 } 27 28 Dynobj* 29 dynloadfd(int fd, Dynsym *sym, int nsym, ulong maxsize) 30 { 31 Fd f; 32 33 f.fd = fd; 34 return dynloadgen(&f, readfd, seekfd, errfd, sym, nsym, maxsize); 35 } 36