Lines Matching +full:0 +full:xde
64 .fs_flags = 0,
77 #define FATBLKSZ 0x20000 /* size of block in the FAT cache buffer */
97 u_char bootsig; /* Boot signature (0x29) */
112 u_char bootsig; /* Boot signature (0x29) */
121 u_char fsi_leadsig[4]; /* Value 0x41615252 */
123 u_char fsi_structsig[4]; /* Value 0x61417272 */
127 u_char fsi_trailsig[4]; /* Value 0xAA550000 */
140 {". ", " ", FA_DIR, {0, 0, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
141 {0, 0}, {0x21, 0}, {0, 0}, {0, 0, 0, 0}},
142 {".. ", " ", FA_DIR, {0, 0, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
143 {0, 0}, {0x21, 0}, {0, 0}, {0, 0, 0, 0}}
203 if (io_size != 0) { in dos_read_fatblk()
206 if (err != 0) { in dos_read_fatblk()
212 memset(fs->fatbuf + io_size, 0, FATBLKSZ - io_size); in dos_read_fatblk()
215 return (0); in dos_read_fatblk()
231 if (err != 0) { in dos_mount_impl()
239 if ((err = ioget(fs, 0, buf, secsz)) || in dos_mount_impl()
250 err = dos_read_fatblk(fs, 0); in dos_mount_impl()
251 if (err != 0) { in dos_mount_impl()
257 fs->root = dot[0]; in dos_mount_impl()
258 fs->root.name[0] = ' '; in dos_mount_impl()
260 fs->root.clus[0] = fs->rdcl & 0xff; in dos_mount_impl()
261 fs->root.clus[1] = (fs->rdcl >> 8) & 0xff; in dos_mount_impl()
262 fs->root.dex.h_clus[0] = (fs->rdcl >> 16) & 0xff; in dos_mount_impl()
263 fs->root.dex.h_clus[1] = (fs->rdcl >> 24) & 0xff; in dos_mount_impl()
265 return (0); in dos_mount_impl()
276 errno = 0; in dos_mount()
285 if (asprintf(&fs, "%s%s", dev, path) < 0) in dos_mount()
294 if (strcmp(f->f_ops->fs_name, "dosfs") == 0) { in dos_mount()
303 if (errno != 0) { in dos_mount()
305 if (mnt->dos_fd >= 0) in dos_mount()
324 return (0); in dos_unmount()
338 return (0); in dos_unmount_impl()
357 if (strcmp(dev, mnt->dos_dev) == 0) in dos_open()
399 return (0); in dos_open()
413 int err = 0; in dos_read()
433 n = 0; in dos_read()
449 if (c != 0) in dos_read()
454 if (err != 0) in dos_read()
458 off = 0; in dos_read()
481 off = 0; in dos_seek()
494 if (off < 0 || off > size) { in dos_seek()
499 f->c = 0; in dos_seek()
515 return (0); in dos_close()
529 sb->st_uid = 0; in dos_stat()
530 sb->st_gid = 0; in dos_stat()
533 return (0); in dos_stat()
544 x = 0; in dos_checksum()
545 for (i = 0; i < 11; i++) { in dos_checksum()
548 x &= 0xff; in dos_checksum()
563 x = chk = 0; in dos_readdir()
566 x = 0; in dos_readdir()
572 if (dd.de.name[0] == 0) in dos_readdir()
576 if (dd.de.name[0] == 0xe5) in dos_readdir()
588 * to get the long file name. 0x40 marks the in dos_readdir()
591 if (dd.xde.seq & 0x40) in dos_readdir()
592 chk = dd.xde.chk; in dos_readdir()
593 else if (dd.xde.seq != xdn - 1 || in dos_readdir()
594 dd.xde.chk != chk) in dos_readdir()
596 x = dd.xde.seq & ~0x40; in dos_readdir()
598 x = 0; in dos_readdir()
601 cp_xdnm(fn, &dd.xde); in dos_readdir()
615 x = 0; in dos_readdir()
619 d->d_fileno = (dd.de.clus[1] << 8) + dd.de.clus[0]; in dos_readdir()
623 return (0); in dos_readdir()
634 if (bs->bpb.media < 0xf0) in parsebs()
659 if (fs->spf != 0) { in parsebs()
662 if (fs->dirents == 0) in parsebs()
666 if (fs->spf == 0) in parsebs()
668 if (bs->bpb.fats == 0 || bs->bpb.fats > 16) in parsebs()
686 fs->fatsz = fs->dirents ? fs->xclus < 0xff6 ? 12 : 16 : 32; in parsebs()
690 return (0); in parsebs()
705 err = 0; in namede()
710 if (*path == '\0') in namede()
713 s = strchr(path, 0); in namede()
717 name[n] = 0; in namede()
725 return (0); in namede()
741 for (ent = 0; ent < 2; ent++) in lookup()
744 return (0); in lookup()
749 lsec = 0; in lookup()
750 xdn = chk = 0; in lookup()
759 for (sec = 0; sec < nsec; sec++) { in lookup()
763 for (ent = 0; ent < depsec(fs); ent++) { in lookup()
766 if (*dir[ent].de.name != 0xe5) { in lookup()
769 x = dir[ent].xde.seq; in lookup()
770 if (x & 0x40 || (x + 1 == xdn && in lookup()
771 dir[ent].xde.chk == chk)) { in lookup()
772 if (x & 0x40) { in lookup()
773 chk = dir[ent].xde.chk; in lookup()
774 x &= ~0x40; in lookup()
777 cp_xdnm(lfn, &dir[ent].xde); in lookup()
800 return (0); in lookup()
804 xdn = 0; in lookup()
821 cp_xdnm(u_char *lfn, DOS_XDE *xde) in cp_xdnm() argument
827 {offsetof(DOS_XDE, name1), sizeof(xde->name1) / 2}, in cp_xdnm()
828 {offsetof(DOS_XDE, name2), sizeof(xde->name2) / 2}, in cp_xdnm()
829 {offsetof(DOS_XDE, name3), sizeof(xde->name3) / 2} in cp_xdnm()
834 lfn += 13 * ((xde->seq & ~0x40) - 1); in cp_xdnm()
835 for (n = 0; n < 3; n++) in cp_xdnm()
836 for (p = (u_char *)xde + ix[n].off, x = ix[n].dim; x; in cp_xdnm()
843 if (xde->seq & 0x40) in cp_xdnm()
844 *lfn = 0; in cp_xdnm()
860 for (i = 0; i <= j; i++) in cp_sfn()
866 for (i = 0; i <= j; i++) in cp_sfn()
870 *p = 0; in cp_sfn()
872 *sfn = 0xe5; in cp_sfn()
905 for (n = 0; okclus(fs, c); n++) in fatcnt()
924 if (val_in & 0xf0000000) in fatget()
938 if (err != 0) in fatget()
947 val_out &= 0x0fffffff; in fatget()
957 val_out &= 0xfff; in fatget()
963 return (0); in fatget()
972 return (c > (sz == 12 ? 0xff7U : sz == 16 ? 0xfff7U : 0xffffff7)); in fatend()
993 if (err != 0) in ioread()
1007 if (n != 0) { in ioread()
1009 if (err != 0) in ioread()
1013 return (0); in ioread()
1028 rsize = 0; in ioget()
1033 if ((rv == 0) && (size != rsize)) in ioget()