aboutsummaryrefslogtreecommitdiff
path: root/sys/libkern
Commit message (Collapse)AuthorAgeFilesLines
* sys: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-2038-0/+76
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326023
* ANSIfy sys/libkernEd Maste2017-11-1919-56/+21
| | | | | | | | | PR: 223641 Submitted by: ota@j.email.ne.jp MFC after: 1 week Notes: svn path=/head/; revision=325988
* spdx: initial adoption of licensing ID tags.Pedro F. Giffuni2017-11-182-0/+4
| | | | | | | | | | | | | | | | | | | | The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Initially, only tag files that use BSD 4-Clause "Original" license. RelNotes: yes Differential Revision: https://reviews.freebsd.org/D13133 Notes: svn path=/head/; revision=325966
* Continuing efforts to provide hardening of FFS, this change adds aKirk McKusick2017-09-221-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | check hash to cylinder groups. If a check hash fails when a cylinder group is read, no further allocations are attempted in that cylinder group until it has been fixed by fsck. This avoids a class of filesystem panics related to corrupted cylinder group maps. The hash is done using crc32c. Check hases are added only to UFS2 and not to UFS1 as UFS1 is primarily used in embedded systems with small memories and low-powered processors which need as light-weight a filesystem as possible. Specifics of the changes: sys/sys/buf.h: Add BX_FSPRIV to reserve a set of eight b_xflags that may be used by individual filesystems for their own purpose. Their specific definitions are found in the header files for each filesystem that uses them. Also add fields to struct buf as noted below. sys/kern/vfs_bio.c: It is only necessary to compute a check hash for a cylinder group when it is actually read from disk. When calling bread, you do not know whether the buffer was found in the cache or read. So a new flag (GB_CKHASH) and a pointer to a function to perform the hash has been added to breadn_flags to say that the function should be called to calculate a hash if the data has been read. The check hash is placed in b_ckhash and the B_CKHASH flag is set to indicate that a read was done and a check hash calculated. Though a rather elaborate mechanism, it should also work for check hashing other metadata in the future. A kernel internal API change was to change breada into a static fucntion and add flags and a function pointer to a check-hash function. sys/ufs/ffs/fs.h: Add flags for types of check hashes; stored in a new word in the superblock. Define corresponding BX_ flags for the different types of check hashes. Add a check hash word in the cylinder group. sys/ufs/ffs/ffs_alloc.c: In ffs_getcg do the dance with breadn_flags to get a check hash and if one is provided, check it. sys/ufs/ffs/ffs_vfsops.c: Copy across the BX_FFSTYPES flags in background writes. Update the check hash when writing out buffers that need them. sys/ufs/ffs/ffs_snapshot.c: Recompute check hash when updating snapshot cylinder groups. sys/libkern/crc32.c: lib/libufs/Makefile: lib/libufs/libufs.h: lib/libufs/cgroup.c: Include libkern/crc32.c in libufs and use it to compute check hashes when updating cylinder groups. Four utilities are affected: sbin/newfs/mkfs.c: Add the check hashes when building the cylinder groups. sbin/fsck_ffs/fsck.h: sbin/fsck_ffs/fsutil.c: Verify and update check hashes when checking and writing cylinder groups. sbin/fsck_ffs/pass5.c: Offer to add check hashes to existing filesystems. Precompute check hashes when rebuilding cylinder group (although this will be done when it is written in fsutil.c it is necessary to do it early before comparing with the old cylinder group) sbin/dumpfs/dumpfs.c Print out the new check hash flag(s) sbin/fsdb/Makefile: Needs to add libufs now used by pass5.c imported from fsck_ffs. Reviewed by: kib Tested by: Peter Holm (pho) Notes: svn path=/head/; revision=323923
* x86/crc32_sse42.c: quiet unused function warningRyan Libby2017-08-111-7/+9
| | | | | | | | | | Reviewed by: cem Approved by: markj (mentor) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11980 Notes: svn path=/head/; revision=322407
* arm64: add ".arch armv8-a+crc" to allow use of crc instructionsEd Maste2017-06-081-0/+1
| | | | | | | | | | | | | | | | With Clang 5.0 the .arch directive is required, otherwise Clang complains "error: instruction requires: crc". This was reported in D10499 but not added initially, because clang 3.8 available on a ref machine reported unknown directive. Clang 4.0 allows but does not require the directive. Submitted by: andrew MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=319718
* Sync qsort.c with userland r318515.Xin LI2017-05-191-47/+82
| | | | | | | | | (Note that MIN macro is removed in favor of sys/param.h's version). PR: 213922 Notes: svn path=/head/; revision=318517
* Remove register keyword from sys/ and ANSIfy prototypesEd Maste2017-05-171-18/+18
| | | | | | | | | | | | | | | A long long time ago the register keyword told the compiler to store the corresponding variable in a CPU register, but it is not relevant for any compiler used in the FreeBSD world today. ANSIfy related prototypes while here. Reviewed by: cem, jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10193 Notes: svn path=/head/; revision=318389
* armv8 has support for optional CRC32C instructions. This patch checks if ↵Michael Tuexen2017-04-272-0/+94
| | | | | | | | | | | | | they are available and if that is true make use of them. Thank you very much to Andrew Turner for providing help and review the patch! Reviewed by: andrew MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10499 Notes: svn path=/head/; revision=317512
* Replace the RC4 algorithm for generating in-kernel secure randomMark Murray2017-04-161-120/+130
| | | | | | | | | | | | | | | | | numbers with Chacha20. Keep the API, though, as that is what the other *BSD's have done. Use the boot-time entropy stash (if present) to bootstrap the in-kernel entropy source. Reviewed by: delphij,rwatson Approved by: so(delphij) MFC after: 2 months Relnotes: yes Differential Revision: https://reviews.freebsd.org/D10048 Notes: svn path=/head/; revision=317015
* Use inline asm instead of unportable intrinsics for the SSE4 crc32Bruce Evans2017-03-261-11/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimization. This fixes building with gcc-4.2.1 (it doesn't support SSE4). gas-2.17.50 [FreeBSD] supports SSE4 instructions, so this doesn't need using .byte directives. This fixes depending on host user headers in the kernel. Fix user includes (don't depend on namespace pollution in <nmmintrin.h> that is not included now). The instrinsics had no advantages except to sometimes avoid compiler pessimixations. clang understands them a bit better than inline asm, and generates better looking code which also runs better for cem, but for me it just at the same speed or slower by doing excessive unrollowing in all the wrong places. gcc-4.2.1 also doesn't understand what it is doing with unrolling, but with -O3 somehow it does more unrolling that helps. Reduce 1 of the the compiler pessimizations (copying a variable which already satisfies an "rm" constraint in a good way by being in memory and not used again, to different memory and accessing it there. Force copying it to a register instead). Try to optimize the inner loops significantly, so as to run at full speed on smaller inputs. The algorithm is already very MD, and was tuned for the throughput of 3 crc32 instructions per cycle found on at least Sandybridge through Haswell. Now it is even more tuned for this, so depends more on the compiler not rearranging or unrolling things too much. The main inner loop for should have no difficulty runing at full speed on these CPUs unless the compiler unrolls it too much. However, the main inner loop wasn't even used for buffers smaller than 24K. Now it is used for buffers larger than 384 bytes. Now it is not so long, and the main outer loop is used more. The new optimization is to try to arrange that the outer loop runs in parallel with the next inner loop except for the final iteration; then reduce the loop sizes significantly to take advantage of this. Approved by: cem Not tested in production by: bde Notes: svn path=/head/; revision=315983
* Discard first 3072 bytes of RC4 keystream, this is a bandaidXin LI2017-03-141-2/+2
| | | | | | | | | | that allows us to work on switching to a more modern PRNG. Submitted by: Steven Chamberlain <steven pyro eu org> Approved by: so Notes: svn path=/head/; revision=315225
* strstr.c was inadvertently blasted with a copy of isa_nmi.c. RevertWarner Losh2017-03-011-30/+20
| | | | | | | and remove clause 3 while I'm here. Notes: svn path=/head/; revision=314448
* Renumber copyright clause 4Warner Losh2017-02-2832-56/+62
| | | | | | | | | | | | Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is too pedantic, so give up on that point. Submitted by: Jan Schaumann <jschauma@stevens.edu> Pull Request: https://github.com/freebsd/freebsd/pull/96 Notes: svn path=/head/; revision=314436
* sys: Replace zero with NULL for pointers.Pedro F. Giffuni2017-02-221-1/+1
| | | | | | | | | Found with: devel/coccinelle MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D9694 Notes: svn path=/head/; revision=314068
* Remove inet_ntoa() from the kernelEric van Gyzen2017-02-161-14/+0
| | | | | | | | | | | | | | inet_ntoa() cannot be used safely in a multithreaded environment because it uses a static local buffer. Remove it from the kernel. Suggested by: glebius, emaste Reviewed by: gnn MFC after: never Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D9625 Notes: svn path=/head/; revision=313822
* calculate_crc32c: Add SSE4.2 implementation on x86Conrad Meyer2017-01-312-0/+299
| | | | | | | | | | | | | | | | | | | | | | | | | Derived from an implementation by Mark Adler. The fast loop performs three simultaneous CRCs over subsets of the data before composing them. This takes advantage of certain properties of the CRC32 implementation in Intel hardware. (The CRC instruction takes 1 cycle but has 2-3 cycles of latency.) The CRC32 instruction does not manipulate FPU state. i386 does not have the crc32q instruction, so avoid it there. Otherwise the implementation is identical to amd64. Add basic userland tests to verify correctness on a variety of inputs. PR: 216467 Reported by: Ben RUBSON <ben.rubson at gmail.com> Reviewed by: kib@, markj@ (earlier version) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D9342 Notes: svn path=/head/; revision=313006
* Use time_t for intermediate values to avoid overflow in clock_ts_to_ctConrad Meyer2017-01-241-0/+4
| | | | | | | | | | | | | | | | | | | Add additionally safety and overflow checks to clock_ts_to_ct and the BCD routines while we're here. Perform a safety check in sys_clock_settime() first to avoid easy local root panic, without having to propagate an error value back through dozens of APIs currently lacking error returns. PR: 211960, 214300 Submitted by: Justin McOmie <justin.mcomie at gmail.com>, kib@ Reported by: Tim Newsham <tim.newsham at nccgroup.trust> Reviewed by: kib@ Sponsored by: Dell EMC Isilon, FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D9279 Notes: svn path=/head/; revision=312702
* libkern: Remove obsolete 'register' keywordConrad Meyer2017-01-1211-29/+29
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=311989
* Update r309143 to prevent false sharing.Fabien Thomas2016-11-251-2/+2
| | | | | | | | | Reported by: mjg Approved by: so MFC after: 1 month Notes: svn path=/head/; revision=309146
* In a dual processor system (2*6 cores) during IPSec throughput tests,Fabien Thomas2016-11-251-37/+80
| | | | | | | | | | | | | | | | | | we see a lot of contention on the arc4 lock, used to generate the IV of the ESP output packets. The idea of this patch is to split this mutex in order to reduce the contention on this lock. Reviewed by: delphij, markm, ache Approved by: so Obtained from: emeric.poupon@stormshield.eu MFC after: 1 month Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D8130 Notes: svn path=/head/; revision=309143
* sys: Make use of our rounddown() macro when sys/param.h is available.Pedro F. Giffuni2016-04-301-1/+1
| | | | | | | No functional change. Notes: svn path=/head/; revision=298848
* Merge ACPICA 20160422.Jung-uk Kim2016-04-271-0/+63
| | | | Notes: svn path=/head/; revision=298714
* kern: for pointers replace 0 with NULL.Pedro F. Giffuni2016-04-154-4/+4
| | | | | | | | | These are mostly cosmetical, no functional change. Found with devel/coccinelle. Notes: svn path=/head/; revision=298069
* libkern: ffs, fls: s/4/3/ the 3rd BSD clauseConrad Meyer2015-10-226-6/+6
| | | | | | | | Approved by: emaste Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=289766
* Add libkern ffsll() for parity with flsll()Conrad Meyer2015-10-221-0/+48
| | | | | | | | Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3962 Notes: svn path=/head/; revision=289765
* Add the __aeabi_memclr8 symbol, clang 3.7 uses this.Andrew Turner2015-09-211-0/+2
| | | | | | | | MFC after: 1 week Sponsored by: ABT Systems Lts Notes: svn path=/head/; revision=288073
* Remove checks for __ARM_EABI__, we only build for EABI now.Andrew Turner2015-07-096-30/+0
| | | | | | | Sponsored by: ABT Systems Ltd Notes: svn path=/head/; revision=285338
* Add support for __aeabi_memclr4, clang 3.7 calls it.Andrew Turner2015-07-091-0/+40
| | | | | | | Sponsored by: ABT Systems Ltd Notes: svn path=/head/; revision=285337
* Huge cleanup of random(4) code.Mark Murray2015-06-302-16/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * GENERAL - Update copyright. - Make kernel options for RANDOM_YARROW and RANDOM_DUMMY. Set neither to ON, which means we want Fortuna - If there is no 'device random' in the kernel, there will be NO random(4) device in the kernel, and the KERN_ARND sysctl will return nothing. With RANDOM_DUMMY there will be a random(4) that always blocks. - Repair kern.arandom (KERN_ARND sysctl). The old version went through arc4random(9) and was a bit weird. - Adjust arc4random stirring a bit - the existing code looks a little suspect. - Fix the nasty pre- and post-read overloading by providing explictit functions to do these tasks. - Redo read_random(9) so as to duplicate random(4)'s read internals. This makes it a first-class citizen rather than a hack. - Move stuff out of locked regions when it does not need to be there. - Trim RANDOM_DEBUG printfs. Some are excess to requirement, some behind boot verbose. - Use SYSINIT to sequence the startup. - Fix init/deinit sysctl stuff. - Make relevant sysctls also tunables. - Add different harvesting "styles" to allow for different requirements (direct, queue, fast). - Add harvesting of FFS atime events. This needs to be checked for weighing down the FS code. - Add harvesting of slab allocator events. This needs to be checked for weighing down the allocator code. - Fix the random(9) manpage. - Loadable modules are not present for now. These will be re-engineered when the dust settles. - Use macros for locks. - Fix comments. * src/share/man/... - Update the man pages. * src/etc/... - The startup/shutdown work is done in D2924. * src/UPDATING - Add UPDATING announcement. * src/sys/dev/random/build.sh - Add copyright. - Add libz for unit tests. * src/sys/dev/random/dummy.c - Remove; no longer needed. Functionality incorporated into randomdev.*. * live_entropy_sources.c live_entropy_sources.h - Remove; content moved. - move content to randomdev.[ch] and optimise. * src/sys/dev/random/random_adaptors.c src/sys/dev/random/random_adaptors.h - Remove; plugability is no longer used. Compile-time algorithm selection is the way to go. * src/sys/dev/random/random_harvestq.c src/sys/dev/random/random_harvestq.h - Add early (re)boot-time randomness caching. * src/sys/dev/random/randomdev_soft.c src/sys/dev/random/randomdev_soft.h - Remove; no longer needed. * src/sys/dev/random/uint128.h - Provide a fake uint128_t; if a real one ever arrived, we can use that instead. All that is needed here is N=0, N++, N==0, and some localised trickery is used to manufacture a 128-bit 0ULLL. * src/sys/dev/random/unit_test.c src/sys/dev/random/unit_test.h - Improve unit tests; previously the testing human needed clairvoyance; now the test will do a basic check of compressibility. Clairvoyant talent is still a good idea. - This is still a long way off a proper unit test. * src/sys/dev/random/fortuna.c src/sys/dev/random/fortuna.h - Improve messy union to just uint128_t. - Remove unneeded 'static struct fortuna_start_cache'. - Tighten up up arithmetic. - Provide a method to allow eternal junk to be introduced; harden it against blatant by compress/hashing. - Assert that locks are held correctly. - Fix the nasty pre- and post-read overloading by providing explictit functions to do these tasks. - Turn into self-sufficient module (no longer requires randomdev_soft.[ch]) * src/sys/dev/random/yarrow.c src/sys/dev/random/yarrow.h - Improve messy union to just uint128_t. - Remove unneeded 'staic struct start_cache'. - Tighten up up arithmetic. - Provide a method to allow eternal junk to be introduced; harden it against blatant by compress/hashing. - Assert that locks are held correctly. - Fix the nasty pre- and post-read overloading by providing explictit functions to do these tasks. - Turn into self-sufficient module (no longer requires randomdev_soft.[ch]) - Fix some magic numbers elsewhere used as FAST and SLOW. Differential Revision: https://reviews.freebsd.org/D2025 Reviewed by: vsevolod,delphij,rwatson,trasz,jmg Approved by: so (delphij) Notes: svn path=/head/; revision=284959
* Add more __aeabi_memcpy functions, later versions of clang generate callsAndrew Turner2015-05-311-0/+4
| | | | | | | to these functions. Notes: svn path=/head/; revision=283805
* Move zlib.c from net to libkern.Craig Rodrigues2015-04-221-0/+5414
| | | | | | | | | | | | | | | It is not network-specific code and would be better as part of libkern instead. Move zlib.h and zutil.h from net/ to sys/ Update includes to use sys/zlib.h and sys/zutil.h instead of net/ Submitted by: Steve Kiernan stevek@juniper.net Obtained from: Juniper Networks, Inc. GitHub Pull Request: https://github.com/freebsd/freebsd/pull/28 Relnotes: yes Notes: svn path=/head/; revision=281855
* Implement asprintf in libkernRyan Stone2015-03-011-0/+77
| | | | | | | | | | Differential Revision: https://reviews.freebsd.org/D1877 Reviewed by: pjd, jfv MFC After: 1 month Sponsored by: Sandvine Inc. Notes: svn path=/head/; revision=279433
* Similar to r277901, fix more -Wcast-qual warnings in libkern's strtoq(),Dimitry Andric2015-01-293-3/+3
| | | | | | | | | strtoul() and strtouq(), by using __DECONST. No functional change. MFC after: 3 days Notes: svn path=/head/; revision=277903
* Fix a -Wcast-qual warning in libkern's strtol(), by using __DECONST. NoDimitry Andric2015-01-291-1/+1
| | | | | | | | | functional change. MFC after: 3 days Notes: svn path=/head/; revision=277901
* Add some new modes to OpenCrypto. These modes are AES-ICM (can be usedJohn-Mark Gurney2014-12-121-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for counter mode), and AES-GCM. Both of these modes have been added to the aesni module. Included is a set of tests to validate that the software and aesni module calculate the correct values. These use the NIST KAT test vectors. To run the test, you will need to install a soon to be committed port, nist-kat that will install the vectors. Using a port is necessary as the test vectors are around 25MB. All the man pages were updated. I have added a new man page, crypto.7, which includes a description of how to use each mode. All the new modes and some other AES modes are present. It would be good for someone else to go through and document the other modes. A new ioctl was added to support AEAD modes which AES-GCM is one of them. Without this ioctl, it is not possible to test AEAD modes from userland. Add a timing safe bcmp for use to compare MACs. Previously we were using bcmp which could leak timing info and result in the ability to forge messages. Add a minor optimization to the aesni module so that single segment mbufs don't get copied and instead are updated in place. The aesni module needs to be updated to support blocked IO so segmented mbufs don't have to be copied. We require that the IV be specified for all calls for both GCM and ICM. This is to ensure proper use of these functions. Obtained from: p4: //depot/projects/opencrypto Relnotes: yes Sponsored by: FreeBSD Foundation Sponsored by: NetGate Notes: svn path=/head/; revision=275732
* Use the unified syntax in a few more assembly filesAndrew Turner2014-12-051-1/+2
| | | | | | | | MFC after: 1 week Sponsored by: ABT Systems Ltd Notes: svn path=/head/; revision=275520
* Sync with userland variant.Xin LI2014-11-171-5/+3
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=274636
* Add a complete implementation of MurmurHash3. Tweak both implementationsDag-Erling Smørgrav2014-10-181-12/+70
| | | | | | | | | | so they match the established idiom. Document them in hash(9). MFC after: 1 month MFC with: r272906 Notes: svn path=/head/; revision=273268
* Remove duplicated code.Xin LI2014-10-161-0/+4
| | | | | | | Suggested by: jmg Notes: svn path=/head/; revision=273189
* Change the PF hash from Jenkins to Murmur3. In forwarding testsGeorge V. Neville-Neil2014-10-101-0/+74
| | | | | | | | | | | | this showed a conservative 3% incrase in PPS. Differential Revision: https://reviews.freebsd.org/D461 Submitted by: des Reviewed by: emaste MFC after: 1 month Notes: svn path=/head/; revision=272906
* Add explicit_bzero(3) and its kernel counterpart.Xin LI2014-10-071-0/+24
| | | | | | | | Obtained from: OpenBSD MFC after: 2 weeks Notes: svn path=/head/; revision=272673
* Use __DECONST to avoid compiler warnings (and thus build failures)Bjoern A. Zeeb2014-09-081-2/+2
| | | | | | | with gcc on sparc64, mips, and powerpc after r271173. Notes: svn path=/head/; revision=271251
* Add support for gdb's memory searching capabilities to our in-kernel gdbBenno Rice2014-09-051-0/+62
| | | | | | | | | | | server. Submitted by: Daniel O'Connor <daniel.oconnor@isilon.com> Reviewed by: jhb Sponsored by: EMC Isilon Storage Division Notes: svn path=/head/; revision=271173
* Bring in the new automounter, similar to what's provided in most otherEdward Tomasz Napierala2014-08-171-0/+51
| | | | | | | | | | | | | | | | UNIX systems, eg. MacOS X and Solaris. It uses Sun-compatible map format, has proper kernel support, and LDAP integration. There are still a few outstanding problems; they will be fixed shortly. Reviewed by: allanjude@, emaste@, kib@, wblock@ (earlier versions) Phabric: D523 MFC after: 2 weeks Relnotes: yes Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=270096
* Fix unwind-info errors in our hand-written arm assembler code.Ian Lepore2014-08-011-10/+10
| | | | | | | | | | | | | | | | | | | | | | We have functions nested within functions, and places where we start a function then never end it, we just jump to the middle of something else. We tried to express this with nested ENTRY()/END() macros (which result in .fnstart and .fnend directives), but it turns out there's no way to express that nesting in ARM EHABI unwind info, and newer tools treat multiple .fnstart directives without an intervening .fnend as an error. These changes introduce two new macros, EENTRY() and EEND(). EENTRY() creates a global label you can call/jump to just like ENTRY(), but it doesn't emit a .fnstart. EEND() is a no-op that just documents the conceptual endpoint that matches up with the same-named EENTRY(). This is based on patches submitted by Stepan Dyatkovskiy, but I made some changes and added the EEND() stuff, so blame any problems on me. Submitted by: Stepan Dyatkovskiy <stpworld@narod.ru> Notes: svn path=/head/; revision=269390
* Remove ia64.Marcel Moolenaar2014-07-0712-1273/+0
| | | | | | | | | | | | | | | | | | | | This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan Notes: svn path=/head/; revision=268351
* Use strcasecmp() instead of strcmp() when checking user-supplied encodingJohn Baldwin2014-06-092-4/+4
| | | | | | | | | | | | | names so that encoding names are treated as case-insensitive. This allows the use of 'utf-8' instead of 'UTF-8' for example and matches the behavior of iconv(1). PR: 167977 Submitted by: buganini@gmail.com MFC after: 1 week Notes: svn path=/head/; revision=267291
* Fix typoEitan Adler2013-11-291-1/+1
| | | | | | | Reported by: emaste Notes: svn path=/head/; revision=258752
* Fix typoEitan Adler2013-11-291-1/+1
| | | | | | | Reported by: swildner@DragonFlyBSD.org Notes: svn path=/head/; revision=258751