summaryrefslogtreecommitdiff
path: root/sys/lib/libsa
AgeCommit message (Collapse)Author
2023-06-14Add /* FALLTHROUGH */ comment for sure.rin
2023-05-29libsa/printf: Do not fetch long va_arg as long long.rin
This does real harm iff all of the following conditions are satisfied: (1) On ILP32 architectures. (2) Both LIBSA_PRINTF_LONGLONG_SUPPORT and LIBSA_PRINTF_WIDTH_SUPPORT compile-time options are enabled. (3) Width field is used with 'l' modifier. This is an implicit-fallthrough bug, but unfortunately, GCC 10.4 cannot find this out somehow... XXX Pull up to netbsd-10 and netbsd-9. netbsd-8 is not affected.
2022-12-01fix clang buildchristos
2022-11-17Restore backward compatibility of UFS2 with previous NetBSD releases bychs
disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
2022-08-07Consistently use ntohs() instead of htons() when converting fromrin
network to host byte order. No binary changes both for big and little endian.
2022-07-08alredy -> alreadyskrll
2022-04-30Now, NULL is always defined correctly, as we include <sys/param.h> above.rin
2022-04-29Re-introduce SA_HARDCODED_SECSIZE hack, by which hardcoded DEV_BSIZE isrin
used instead of secsize obtained by SAIOSECSIZE ioctl. This hack avoids divdi3 and friends from being linked, in order to support variable secsize for some archs. Should be useful for ancient archs, for which secsize is fixed. Thanks christos@ for comment.
2022-04-27Revert previous at the moment.rin
This is wrong reasoning; 68020 and above (incl. 040 and 060) support 32-bit displacements for PC relative addressing (via "fully extension addressing mode" with null index register). I've still not figured out what goes wrong with amiga/boot(8) when compiled without -l option for gas(1)... On 2022/04/27 20:48, Rin Okuyama wrote: > Module Name: src > Committed By: rin > Date: Wed Apr 27 11:48:26 UTC 2022 > > Modified Files: > src/sys/lib/libsa: ext2fs.c minixfs3.c stand.h ufs.c > > Log Message: > Introduce SA_HARDCODED_SECSIZE hack, by which hardcoded DEV_BSIZE is > used instead of secsize obtained by SAIOSECSIZE ioctl. > > This hack avoids divdi3 and friends from being linked, in order to > support variable secsize. > > This is useful for amiga/boot(8); it is loaded by firmware into > unpredictable address, and therefore all symbols should be > addressable by PC relative mode with only 16-bit displacements. > > See sys/arch/amiga/stand/bootblock/{boot/bbstart.s,elf2bb,txlt} for > more details. > > > To generate a diff of this commit: > cvs rdiff -u -r1.31 -r1.32 src/sys/lib/libsa/ext2fs.c > cvs rdiff -u -r1.10 -r1.11 src/sys/lib/libsa/minixfs3.c > cvs rdiff -u -r1.83 -r1.84 src/sys/lib/libsa/stand.h src/sys/lib/libsa/ufs.c > > Please note that diffs are not public domain; they are subject to the > copyright notices on the relevant files.
2022-04-27Introduce SA_HARDCODED_SECSIZE hack, by which hardcoded DEV_BSIZE isrin
used instead of secsize obtained by SAIOSECSIZE ioctl. This hack avoids divdi3 and friends from being linked, in order to support variable secsize. This is useful for amiga/boot(8); it is loaded by firmware into unpredictable address, and therefore all symbols should be addressable by PC relative mode with only 16-bit displacements. See sys/arch/amiga/stand/bootblock/{boot/bbstart.s,elf2bb,txlt} for more details.
2022-04-24Don't load filessytem module for filesystem that was found but isn't usedmlelstv
for booting.
2022-04-24Ask driver about sector size to support reading superblocks from fixedmlelstv
byte offsets.
2022-04-19Typo in comment. avoinds -> avoidsskrll
2022-01-05fix typos, mainly s/comand/command/andvar
2021-10-17Only define DEFAULT_TIMEOUT if it is not already defined.jmcneill
2021-09-07Remove banner printing code from bootloaders, add it to libsa.nia
This harmonizes efiboot and the various x86 bootloaders to use shared code for printing the banner. By friendly coincidence, it also adds support for specifying 'banner=' in arm efiboot's boot.cfg, as on x86.
2021-05-30Add "root" command to provide a BTINFO_ROOTDEVICE parameter.mlelstv
2021-05-27add bi-endian support to the libsa ufs reader and enable it in efiboot.mrg
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.
2021-05-26in getdisklabel() swap the other-endian disklabel, #ifdef LIBSA_DISKLABEL_EImrg
2021-05-21Capture the endianness of the ELF file loaded in 'netbsd_elf_data', thejmcneill
same way we do already for the class in 'netbsd_elf_class'.
2021-05-17move bi-endian disklabel support from the kernel and libsa into libkern.mrg
- dkcksum() and dkcksum_sized() move from subr_disk.c and from libsa into libkern/dkcksum.c (which is missing _sized() version), using the version from usr.sbin/disklabel. - swap_disklabel() moves from subr_disk_mbr.c into libkern, now called disklabel_swap(). (the sh3 version should be updated to use this.) - DISKLABEL_EI becomes a first-class option with opt_disklabel.h. - add libkern.h to libsa/disklabel.c. this enables future work for bi-endian libsa/ufs.c (relevant for ffsv1, ffsv2, lfsv1, and lfsv2), as well as making it possible for ports not using subr_disk_mbr.c to include bi-endian disklabel support (which, afaict, includes any disk on mbr-supporting platforms that do not have an mbr as well as disklabel.) builds successsfully on: alpha, i386, amd64, sun2, sun3, evbarm64, evbarm64-eb, sparc, and sparc64. tested in anita on i386 and sparc, testing in hardware on evbarm64*.
2021-05-12push the FFSv1 superblock code into ffs_find_superblock() andmrg
hide all the ugliness in this function, out of ufs_open(). NFC, objects same size if not identical.
2021-03-26Twiddle also for data transfer for seek.rin
2020-12-19Fix previous; define missing lfs_version.rin
2020-12-19ufs_open(): Check fs->lfs_version ifdef LIBSA_*L*FS, not LIBSA_*F*FS.rin
This was harmless for FFS variants, that define LIBSA_FFSv[12], not LIBSA_FFS.
2020-09-29Add a slow twiddle option. This speeds up a pmax netboot by 15% andsimonb
is only 1% slower than no twiddle.
2020-09-13Elf64_Phdr::p_offset is 64 bits, not 32jmcneill
2020-09-13Elf64_Phdr::p_flags is 32 bits, not 64jmcneill
2020-09-07remove GCC_NO_ADDR_OF_PACKED_MEMBER for several subdir buildsmrg
that are now handled by lfs_accessors.h internally.
2020-09-07oops, move GCC_NO_ADDR_OF_PACKED_MEMBER into the right header.mrg
2020-09-07apply GCC_NO_ADDR_OF_PACKED_MEMBERmrg
2020-06-27Support loading boot.cfg from non file-system based devices.jmcneill
2020-06-06Make libsa's vsnprintf() work as expected when passed a NULLthorpej
destinatino buffer.
2020-05-07Update the comments.maxv
2020-01-26Make a debug printf compile for all platformsskrll
2020-01-24Use dp->e2d_namlen rather than strlen(dp->e2d_name) in ext2fs_ls().jakllsch
Prevents garbage beyond the end of the name from appearing on screen.
2020-01-22To support big partitions we need to make sure all byte offsets are calculatedmartin
in 64 bit arithmetic. Pointed out by Rob Newberry. Unfortunately this causes a code size increase breaking some boot blocks, so conditionalize it and use 32 bit arithmetic if SA_DOSFS_NO_BIG_PART_SUPPORT is defined.
2019-11-21apply the strncmp hack only to !clang. requested by tnn.mrg
2019-11-21from the new comment:mrg
* XXX Hack alert. GCC 8.3 mis-compiles this function and calls * strncmp() with the wrong second pointer, as seen in PR#54703. * * Until the real cause is located, work around it by using -O1 * for this function. this hack is restricted to i386.
2019-10-17Make sure we're dealing with a static binary. Otherwise we could crash ifmaxv
the user mistakenly tries to boot a KASLR kernel with 'boot' instead of 'pkboot'. Now we fail cleanly. Reported by cryo@.
2019-07-21Add SA_ENABLE_BIENDIAN option, which enable us to load kernel image ofrin
opposite byte order (for arm EFI bootloader). XXX Currently, it is restricted to load_elf*.c. It would be nice if we can recognize disklabel and filesystem of opposite byte order.
2019-06-24Now that the ufs module has been split out from ffs and ext2fs, we needpgoyette
to update the boot-loader to push all modules required to support the booted filesystem. We treat the fsmod string as a slash-separated list of module names (relative to kern.module.path), rather than as a single module path name. Note that ffsv1 and ffsv2 are still exempted from the boot-loader's auto-push, but the list of required filesystems is still noted in the source. Also note that arch/sandpoint needs a similar change. I have not made this change because I am totally unable to test it. Tested on my kernel with _no_ built-in file-systems and with the ffs bootloader settings of fsmod enabled.
2019-06-20Add KASLR support in UEFI.maxv
2019-04-05Go back ot using 0x%x instead of %#x because we don't always support thechristos
format. See subr_prf.c
2019-04-02fix sign-compare and sign-passing errors.christos
2019-03-31fix warnings, printf formats, etc.christos
2019-03-31correct debug message, d->myport has network byte order.mlelstv
2019-02-03- remove unreachable codemrg
2018-08-23Support loading read-only data sections. ARM64 ELF kernels need this. ok skrll@jmcneill
2018-06-05Use the standard build rules.christos