seglist
bus_dma_segment_t seglist[1];
if ((error = bus_dmamem_alloc(sc->sc_dmat, size, PAGE_SIZE, 0, seglist,
if ((error = bus_dmamem_map(sc->sc_dmat, seglist, 1, size, addrp,
bus_dmamem_free(sc->sc_dmat, seglist, 1);
seglist[nsegs].addr = phdr.p_paddr;
seglist[nsegs].f_offset = phdr.p_offset;
seglist[nsegs].f_size = phdr.p_filesz;
printf("lseek(ifd, %d, 0)\n", seglist[i].f_offset);
if (lseek(ifd, (off_t)seglist[i].f_offset, 0) < 0)
uncomp_kernel + seglist[i].addr - lowaddr,
seglist[i].f_size);
if (read(ifd, uncomp_kernel + seglist[i].addr - lowaddr,
seglist[i].f_size) != seglist[i].f_size)
struct seglist seglist[MAX_SEGMENTS];
bus_dma_segment_t *seglist, int nseg, int *rsegp,
if ((error = bus_dmamem_alloc(sc->sc_dmat, size, PAGE_SIZE, 0, seglist,
if ((error = bus_dmamem_map(sc->sc_dmat, seglist, nseg, size, addrp,
bus_dmamem_free(sc->sc_dmat, seglist, nseg);
if (seglist != NULL)
for (; seglist != NULL; seglist = seglist->next) {
seg_addr = lfs_sntod(lfs_master, seglist->num);
dump_segment(fd, seglist->num, seg_addr, lfs_master,
struct seglist *slp;
if (seglist == NULL)
for (slp = seglist; slp != NULL; slp = slp->next)
typedef struct seglist SEGLIST;
SEGLIST *seglist;
p->next = seglist;
seglist = p;
struct seglist seglist[MAX_SEGMENTS];
seglist[nsegs].addr = le32toh(phdr.p_paddr);
seglist[nsegs].f_offset = le32toh(phdr.p_offset);
seglist[nsegs].f_size = le32toh(phdr.p_filesz);
*data + seglist[i].addr - lowaddr,
seglist[i].f_size, (off_t)seglist[i].f_offset)
!= seglist[i].f_size) {