Module Name: src Committed By: mrg Date: Thu May 27 06:54:45 UTC 2021
Modified Files: src/sys/lib/libsa: Makefile ffsv1.c ffsv2.c lfsv1.c lfsv2.c ufs.c ufs.h src/sys/stand/efiboot: Makefile.efiboot version Added Files: src/sys/lib/libsa: ffs_bswap.c Log Message: add bi-endian support to the libsa ufs reader and enable it in efiboot. ffs frontends to "ufs.c" now also define ufs_dinode_swap, ufs_indp_swap, and FS_MAGIC (moved from ufs.c #if segments.) these are used to call the right (32/64 bit) ffsv1/v2 version. ufs.c 'struct file' gains f_swapped member. accessors for d_magic, d_reclen, and d_ino are introduced (they need to be swapped.) sfter reading an inode from disk, read_inode() may call ufs_dinode_swap(). indirect block number and caches may be swapped. error handling in ffs_find_superblock() is cleaned up. (size is slightly reduced on some ports with this part.) defaults for new defines added to ufs.c. (XXX: we build ufs.c but i think all the consumers don't use it, and we can stop building it.) LFS support is not included. add a cut-down copy of ffs_bswap.c from the kernel. also enable bi-endian disklabel support in efiboot. most ports build and sizes compared for platforms that don't enable this code and all but one saw reduced code size. booted several platforms with new boot code. To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/sys/lib/libsa/Makefile cvs rdiff -u -r0 -r1.1 src/sys/lib/libsa/ffs_bswap.c cvs rdiff -u -r1.7 -r1.8 src/sys/lib/libsa/ffsv1.c src/sys/lib/libsa/ffsv2.c cvs rdiff -u -r1.14 -r1.15 src/sys/lib/libsa/lfsv1.c \ src/sys/lib/libsa/lfsv2.c cvs rdiff -u -r1.79 -r1.80 src/sys/lib/libsa/ufs.c cvs rdiff -u -r1.10 -r1.11 src/sys/lib/libsa/ufs.h cvs rdiff -u -r1.20 -r1.21 src/sys/stand/efiboot/Makefile.efiboot cvs rdiff -u -r1.24 -r1.25 src/sys/stand/efiboot/version Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.