1struct fd_buf { 2 char *buf; /* The buffer itself */ 3 daddr_t start; /* Start of this buffer */ 4 daddr_t end; /* End of this buffer */ 5}; 6 7struct fdfs { 8 int fd_fd; /* The file descriptor */ 9 int fd_bufc; /* Number of segment buffers */ 10 int fd_bufi; /* Index to next segment buffer */ 11 struct fd_buf *fd_bufp; /* The buffers */ 12 off_t fd_bsize; /* block size */ 13 off_t fd_ssize; /* segment size */ 14}; 15 16struct uvnode * fd_vget(int, int, int, int); 17int fd_preload(struct uvnode *, daddr_t); 18int fd_vop_strategy(struct ubuf *); 19int fd_vop_bwrite(struct ubuf *); 20int fd_vop_bmap(struct uvnode *, daddr_t, daddr_t *); 21char *fd_ptrget(struct uvnode *, daddr_t); 22void fd_reclaim(struct uvnode *); 23void fd_release(struct uvnode *); 24void fd_release_all(struct uvnode *); 25