summaryrefslogtreecommitdiffstats
path: root/sys/libkern
Commit message (Collapse)AuthorAgeFilesLines
* /* -> /*- for copyright notices, minor format tweaks as necessaryimp2005-01-0733-33/+43
|
* Use the RET macro.cognet2004-11-092-6/+6
|
* Implement ffs with clz for Xscale.cognet2004-11-071-1/+8
| | | | Idea taken from: NetBSD
* Don't attempt to profile __udivsi3() and friends, as mcount() uses them.cognet2004-10-011-4/+4
|
* Move the kernel-specific logic to adjust frompc from MI to MD. Formarcel2004-08-271-33/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | these two reasons: 1. On ia64 a function pointer does not hold the address of the first instruction of a functions implementation. It holds the address of a function descriptor. Hence the user(), btrap(), eintr() and bintr() prototypes are wrong for getting the actual code address. 2. The logic forces interrupt, trap and exception entry points to be layed-out contiguously. This can not be achieved on ia64 and is generally just bad programming. The MCOUNT_FROMPC_USER macro is used to set the frompc argument to some kernel address which represents any frompc that falls outside the kernel text range. The macro can expand to ~0U to bail out in that case. The MCOUNT_FROMPC_INTR macro is used to set the frompc argument to some kernel address to represent a call to a trap or interrupt handler. This to avoid that the trap or interrupt handler appear to be called from everywhere in the call graph. The macro can expand to ~0U to prevent adjusting frompc. Note that the argument is selfpc, not frompc. This commit defines the macros on all architectures equivalently to the original code in sys/libkern/mcount.c. People can take it from here... Compile-tested on: alpha, amd64, i386, ia64 and sparc64 Boot-tested on: i386
* Convert the vfsconf list to a TAILQ.phk2004-07-271-8/+3
| | | | | | | | Introduce vfs_byname() function to find things on it. Staticize vfs_nmount() function under the name vfs_donmount(). Various cleanups.
* Copy qsort_r(3) from libc to libkern.glebius2004-07-152-24/+49
| | | | | Reviewed by: phk Approved by: julian (mentor)
* Import libkern arm specific bits.cognet2004-05-143-0/+713
|
* Fixed some style bugs (unsorting of prototypes in previous commit, andbde2004-05-051-8/+8
| | | | messes involving the idempotency guard).
* Prototype __ashldi3(), __ashrdi3() and __lshrdi3().cognet2004-05-041-0/+4
|
* Remove advertising clause from University of California Regent'simp2004-04-0735-140/+0
| | | | | | | license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson. Approved by: core, peter, alc, rwatson
* Bring these files closer to style(9) conformance by comparing arobert2004-03-292-2/+2
| | | | dereferenced character pointer to '\0' instead of using the ! operator.
* These are changes to allow to use the Intel C/C++ compiler (lang/icc)trhodes2004-03-121-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to build the kernel. It doesn't affect the operation if gcc. Most of the changes are just adding __INTEL_COMPILER to #ifdef's, as icc v8 may define __GNUC__ some parts may look strange but are necessary. Additional changes: - in_cksum.[ch]: * use a generic C version instead of the assembly version in the !gcc case (ASM code breaks with the optimizations icc does) -> no bad checksums with an icc compiled kernel Help from: andre, grehan, das Stolen from: alpha version via ppc version The entire checksum code should IMHO be replaced with the DragonFly version (because it isn't guaranteed future revisions of gcc will include similar optimizations) as in: ---snip--- Revision Changes Path 1.12 +1 -0 src/sys/conf/files.i386 1.4 +142 -558 src/sys/i386/i386/in_cksum.c 1.5 +33 -69 src/sys/i386/include/in_cksum.h 1.5 +2 -0 src/sys/netinet/igmp.c 1.6 +0 -1 src/sys/netinet/in.h 1.6 +2 -0 src/sys/netinet/ip_icmp.c 1.4 +3 -4 src/contrib/ipfilter/ip_compat.h 1.3 +1 -2 src/sbin/natd/icmp.c 1.4 +0 -1 src/sbin/natd/natd.c 1.48 +1 -0 src/sys/conf/files 1.2 +0 -1 src/sys/conf/files.amd64 1.13 +0 -1 src/sys/conf/files.i386 1.5 +0 -1 src/sys/conf/files.pc98 1.7 +1 -1 src/sys/contrib/ipfilter/netinet/fil.c 1.10 +2 -3 src/sys/contrib/ipfilter/netinet/ip_compat.h 1.10 +1 -1 src/sys/contrib/ipfilter/netinet/ip_fil.c 1.7 +1 -1 src/sys/dev/netif/txp/if_txp.c 1.7 +1 -1 src/sys/net/ip_mroute/ip_mroute.c 1.7 +1 -2 src/sys/net/ipfw/ip_fw2.c 1.6 +1 -2 src/sys/netinet/igmp.c 1.4 +158 -116 src/sys/netinet/in_cksum.c 1.6 +1 -1 src/sys/netinet/ip_gre.c 1.7 +1 -2 src/sys/netinet/ip_icmp.c 1.10 +1 -1 src/sys/netinet/ip_input.c 1.10 +1 -2 src/sys/netinet/ip_output.c 1.13 +1 -2 src/sys/netinet/tcp_input.c 1.9 +1 -2 src/sys/netinet/tcp_output.c 1.10 +1 -1 src/sys/netinet/tcp_subr.c 1.10 +1 -1 src/sys/netinet/tcp_syncache.c 1.9 +1 -2 src/sys/netinet/udp_usrreq.c 1.5 +1 -2 src/sys/netinet6/ipsec.c 1.5 +1 -2 src/sys/netproto/ipsec/ipsec.c 1.5 +1 -1 src/sys/netproto/ipsec/ipsec_input.c 1.4 +1 -2 src/sys/netproto/ipsec/ipsec_output.c and finally remove sys/i386/i386 in_cksum.c sys/i386/include in_cksum.h ---snip--- - endian.h: * DTRT in C++ mode - quad.h: * we don't use gcc v1 anymore, remove support for it Suggested by: bde (long ago) - assym.h: * avoid zero-length arrays (remove dependency on a gcc specific feature) This change changes the contents of the object file, but as it's only used to generate some values for a header, and the generator knows how to handle this, there's no impact in the gcc case. Explained by: bde Submitted by: Marius Strobl <marius@alchemy.franken.de> - aicasm.c: * minor change to teach it about the way icc spells "-nostdinc" Not approved by: gibbs (no reply to my mail) - bump __FreeBSD_version (lang/icc needs to know about the changes) Incarnations of this patch survive gcc compiles since a loooong time, I use it on my desktop. An icc compiled kernel works since Nov. 2003 (exceptions: snd_* if used as modules), it survives a build of the entire ports collection with icc. Parts of this commit contains suggestions or submissions from Marius Strobl <marius@alchemy.franken.de>. Reviewed by: -arch Submitted by: netchild
* Remove register keyword and constify tmp values. This fixesgrehan2004-02-121-3/+3
| | | | | PPC compile warning - PPC is the only consumer of this code path.
* Translate from GNU C to ISO C.des2004-01-144-4/+4
|
* Cast to unsigned to avoid sign-extension problems.des2004-01-134-4/+4
|
* Add C implementations of ffsl(), fls() and flsl().des2004-01-133-0/+156
|
* ANSIfy, de-register, replace VAX reference with actual description.des2004-01-131-6/+5
|
* Make msdosfs long filenames matching case insensitive again.fjoe2003-12-081-8/+13
| | | | | PR: 59765 Submitted by: Ryuichiro Imura <imura@ryu16.org>
* - Support for multibyte charsets in LIBICONV.fjoe2003-09-264-9/+304
| | | | | | | | - CD9660_ICONV, NTFS_ICONV and MSDOSFS_ICONV kernel options (with corresponding modules). - kiconv(3) for loadable charset conversion tables support. Submitted by: Ryuichiro Imura <imura@ryu16.org>
* Lock down arc4random so it can be safely called w/o Giant.silby2003-08-151-17/+26
| | | | | | Minor code reorganization was required, but the only functional change was that the first 1024 bytes of output are thrown out after each reseed, rather than just the initial seed.
* Lower initial drop value to 50, it is enough to hide linearityache2003-08-101-2/+2
|
* Backed out the micro-optimization in 1.4. It was to help gcc-2.6.3bde2003-07-251-6/+1
| | | | | | | | | on i486's (and probably i386's), but it has had very little effect since gcc-2.7 or gcc-2.95. With gcc-3.3, it gave a small pessimization for at least i386's, athlon-xp's and pentium4's, a small optimization (I think) for pentium1's, and made no difference for i386's. (movzbl is best for all the later processors, and the micro-optimization was to stop it being used on i486's.)
* Use __FBSDID().obrien2003-06-1138-75/+117
|
* Deprecate machine/limits.h in favor of new sys/limits.h.kan2003-04-295-5/+5
| | | | | | | Change all in-tree consumers to include <sys/limits.h> Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
* Further GC of M_STRING, missed previously.rwatson2003-02-261-2/+0
|
* Replace license with two-clause BSD; an old license template with threerwatson2003-02-261-7/+4
| | | | clauses was used by mistake.
* Pass a malloc type into the libkern strdup() implementation explicitly,rwatson2003-02-251-2/+2
| | | | | | | so that callers can specify what malloc pool the resulting memory should come from. Requested by: phk
* Add an implementation of strdup() to libkern. Allocated memory is ofrwatson2003-02-231-0/+54
| | | | | | | | | type M_STRING, now defined in malloc.h. Useful when string parsing must occur using the kernel strsep() and we want to avoid toasting the source string. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
* Back out M_* changes, per decision of the TRB.imp2003-02-192-3/+3
| | | | Approved by: trb
* Improve a comment and undo a bogus s/a/an/ in a comment. An asm guruschweikh2003-02-112-6/+6
| | | | | | should add more comments explaining which registers hold which variables. Spotted by: bde
* Add restrict keyword to string functions.hsu2003-02-103-10/+3
| | | | Reviewed by: bde
* Since we drop NSHUFF values now, set default seed to what it becomesache2003-02-051-1/+1
| | | | after srandom(1)
* Drop NSHUFF values right after srandom() to remove part of seed -> 1stache2003-02-041-0/+6
| | | | value correlation. Correlation still remains because of algorithm limits.
* Park & Miller PRNG can be safely initialized with any value but 0 and stuckache2003-02-031-2/+4
| | | | | | | at 0 as designed. Its BSD adaptation tries to fight it by mapping 0 to 2147483647 after calculation, but this method not works since 2147483647 seed returns to 0 again on the next interation. Instead of after calculation mapping, map 0 to another value _before_ calculation, so it never stucks.
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-212-3/+3
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,schweikh2003-01-012-2/+2
| | | | especially in troff files.
* Fix instances of macros with improperly parenthasized arguments.alfred2002-11-091-1/+1
| | | | Verified by: md5
* Slight overhaul of arc4random() and friends.phk2002-10-111-22/+27
| | | | | | | | | | | | | | | | | | | One bug fixed: Use getmicrouptime() to trigger reseeds so that we cannot be tricked by a clock being stepped backwards. Express parameters in natural units and with natural names. Don't use struct timeval more than we need to. Various stylistic and readability polishing. Introduce arc4rand(void *ptr, u_int len, int reseed) function which returns a stream of pseudo-random bytes, observing the automatic reseed criteria as well as allowing forced reseeds. Rewrite arc4random() in terms of arc4rand(). Sponsored by: DARPA & NAI Labs.
* Hook up strsep(3) to libkern following a repo-copy by Peter. This willrwatson2002-10-101-2/+2
| | | | | | allow us to avoid nasty by-hand string parsing stuff in a number of places in the kernel, reducing the risk of unexpected consequences for kernel correctness.
* Allow for multiple #includes of this file.phk2002-10-081-0/+4
|
* Import the libc fnmatch() into the kernel. This will be used by,dd2002-10-081-20/+9
| | | | | | | | | | | among other things, the DEVFS rule subsystem to match nodes against a path pattern supplied by the user. fnmatch.c was repo-copied from src/lib/libc/gen/fnmatch.c, and the only changes to it are those necessary to make it compile in the kernel. The relevant parts of fnmatch.h were imported into libkern.h. Approved by: -arch
* Fix a bunch of s/int */size_t */.mux2002-10-061-2/+4
|
* Use sys/libkern.h not /usr/include/string.hpeter2002-09-062-2/+2
|
* Include sys/libkern.h for the kernel prototypes of these libkern functionsjhb2002-08-228-8/+8
| | | | | | | instead of including the userland string.h header. Prompted by: breakage with old string.h from recent machine/types.h fix Approved by: peter (in principle)
* Convert GNU variadic macros to the ISO 9X variety.markm2002-07-151-1/+3
|
* For some reason this didn't get added in my previous commit.phk2002-05-291-0/+107
|
* Remove bogus include of <machine/ansi.h>.mike2002-04-111-1/+0
|
* Remove 'register' keyword.obrien2002-03-213-11/+11
|
* Remove __P.alfred2002-03-204-14/+14
|
OpenPOWER on IntegriCloud