summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib
Commit message (Collapse)AuthorAgeFilesLines
...
* | Note that streams are now flushed on abort.alex1996-10-261-2/+2
| | | | | | | | Change standards section to reflect POSIX 1003.1-1990 conformance.
* | Various cosmeticsphk1996-10-261-48/+28
| | | | | | | | | | | | Improve chances of troublefree 64bit operation. [imp] Noticed by: Warner Losh <imp@village.org>
* | POSIX requires stdio buffers be flushed on abort.alex1996-10-261-0/+8
| | | | | | | | Obtained from: OpenBSD, Thorsten Lockert <tholo@OpenBSD.ORG>
* | malloc_pages should be static.phk1996-10-201-187/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add progname to warning/error message layout. (joerg) Remove inline assembler, no speed impact, not need for the obfuscation (bde) Remove on the fly calculation of parameters, no longer critical. Make D & U flags valid even if we don't support them. Don't call imalloc until we're done initializing. Zap contents on free() if we have "Junk" set. [*] Various nitpicking. [*] As a sideeffect of this change, if you are worried about sensitive data lingering in memory, you can use the 'Junk' option now to make sure phkmalloc zaps memory when it is returned. add char * malloc_options = "J"; to your source. Obviously there is a performance impact.
* | Improve seeding, the random sequence did not vary matchache1996-10-092-14/+75
| | | | | | | | with the seed. Old variant will be available via libcompat soon.
* | Don't use malloc, pessimize to use sbrk.phk1996-09-271-1/+2
| | | | | | | | fix sbrk manpage while we're at it.
* | Fix a typo.sos1996-09-251-2/+2
| | | | | | | | Reviewed by: phk
* | A number of minor bogons and portability things from jdp.phk1996-09-251-28/+37
| | | | | | | | Submitted by: jdp
* | add missing comma(s) in .Xr macroswosch1996-09-231-3/+4
| |
* | phkmalloc/3phk1996-09-232-196/+342
| | | | | | | | | | | | | | | | Various neat features added. More documentation in the manpage. If your machine has very little RAM, I guess that would be < 16M these days :-(, you may want to try this: ln -fs 'H<' /etc/malloc.conf check the manpage.
* | Fix a very rare error condition: The code to free VM back to the kernelphk1996-09-171-3/+4
| | | | | | | | | | | | | | as done after a quasi-recursive call to free() had modified what we thought we knew about the last chunk of pages. This bug manifested itself when I did a "make obj" from src/usr.sbin/lpr, then make would coredump in the lpd directory.
* | Don't depend in the kernel on the gcc feature of doing arithmetic onbde1996-08-311-10/+10
| | | | | | | | pointers of type `void *'. Warn about this in future.
* | Correctly use .Fn instead of .Nm to reference function namesmpp1996-08-222-2/+4
| | | | | | | | | | | | | | | | in a bunch of man pages. Use the correct .Bx (BSD UNIX) or .At (AT&T UNIX) macros instead of explicitly specifying the version in the text in a bunch of man pages.
* | Update a bunch of man pages to use .Fn insteadmpp1996-08-221-1/+1
| | | | | | | | of .Nm when referencing funciton names.
* | Correctly document when getopt returns EOF and '?', and some othermpp1996-08-211-5/+7
| | | | | | | | minor cleanup.
* | General -Wall warning cleanup, part I.jkh1996-07-1211-40/+43
| | | | | | | | Submitted-By: Kent Vander Velden <graphix@iastate.edu>
* | Isolated all the crap for thread-safe so I can see what goes on again...phk1996-07-031-61/+48
| |
* | Oops, replace a rather important line that was lost in transit 8-(jraynard1996-06-081-1/+2
| |
* | Submitted by: (based on code in "Advanced Programming in the Unix Environment"jraynard1996-06-052-18/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by W.Richard Ste vens. EINTR handling suggested by bde@freebsd.org). Code cleanup: 1. Add missing return type. 2. Replace 'union wait' by int. 3. Use Posix-style signal handling instead of signal(). 4. Use fork() instead of deprecated vfork(). 5. Block signals before fork()'ing, instead of after. 6. Return -1 if fork() fails, instead of 0. 7. Add EINTR handling for waitpid() call. Also add claim of Posix conformance to man page.
* | Fixed various problems: typos, grammer, missing include filesmpp1996-05-231-1/+1
| | | | | | | | | | wrong function type declarations, and wrong argument type declarations.
* | Don't include <sys/types.h> when it isn't used.bde1996-04-192-4/+2
| | | | | | | | | | This commit covers most of the ANSI library functions. Many others only need <sys/types.h> because they use u_xxx.
* | Xref sysexits(3).joerg1996-03-311-1/+7
| |
* | Added missing section numbers to a bunch of .Xr macros, ormpp1996-03-271-4/+9
| | | | | | | | | | converted them into .Fn macros where appropriate. Also fixed up some minor formatting problems.
* | Fixed a bunch of man page cross references that werempp1996-02-151-1/+1
| | | | | | | | | | | | | | | | in the main text of various man pages. Thanks to Warner Losh for adding an option to manck to allow it to scan the entire man page looking for bogus xrefs, instead of just checking the SEE ALSO section.
* | Correct a bunch of man page cross references and generallympp1996-02-113-5/+5
| | | | | | | | | | | | try and silence "manck". ncurses, rpc, and some of the gnu stuff are still a big mess, however.
* | Fix even more spelling errors in some more man pages.mpp1996-01-302-6/+6
| |
* | Reviewed by: julian and (hsu?)julian1996-01-222-3/+79
| | | | | | | | | | | | Submitted by: John Birrel(L?) changes for threadsafe operations
* | Return pointer to new hash node when search inserts it (e.g. therejkh1996-01-131-1/+5
| | | | | | | | was some datum given).
* | Fix a fencepost error.phk1996-01-051-4/+4
| | | | | | | | Found by: Lars Fredriksen <fredriks@mcs.com>
* | This commit was generated by cvs2svn to compensate for changes in r13122,peter1995-12-302-180/+0
| | | | | | | | which included commits to RCS files with non-trunk default branches.
* | Added prototypes.bde1995-12-261-3/+8
| |
* | Preallocate a small structure, so we can sbrk(2) further back.phk1995-12-181-2/+8
| | | | | | | | | | Reviewed by: phk Submitted by: Kaleb Keithly <kaleb@x.org>
* | Change phkmalloc so that the page directory is now floating and allocatedpeter1995-12-111-29/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | via mmap() up around the shared library area. Previously the directory was allocated from space from it's own memory pool. Because of the way it was being extended on processes with large malloced data segments (ie: inn) once the page directory was extended for some reason, it was not possible to lower the heap size any more to return pages to the OS. (If my understanding is correct, page directory expansion occurs at 4MB, 12MB, 20MB, 28MB, etc.) I was seeing INN allocate a large amount of short term memory, pushing it over the 28MB mark, and once it's transient demands hit 28MB, it never freed it's pages and swap space again.) I've been running this in my libc for about a month... Also, seperate MALLOC_STATS from EXTRA_SANITY.. I found it useful to call malloc_dump() from within INN from a ctlinnd command to see where the hell all the memory was going.. :-) I've left MALLOC_STATS enabled, as it has no run-time or data storage cost. Reviewed by: phk
* | Mino cleanup, #includes & unused vars.phk1995-10-222-2/+6
| |
* | Remove EXTRA_SANITY, fix a unused var.phk1995-10-221-4/+8
| |
* | Doubled the performance of getenv()/__findenv() by rewriting it to notdg1995-10-171-20/+24
| | | | | | | | use strncmp()..
* | phkmalloc/2phk1995-10-082-311/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "zero' and 'junk' options to help find and diagnose malloc abuse. EXTRA_SANITY defaults "junk" to on. Don't dump the internal state, unless EXTRA_SANITY. General code cleanup. Error messages cleaned up a bit, more checking earlier. EXTRA_SANITY is default at this time (just in case). Performance (without EXTRA_SANITY) is better, beats gnumalloc in both time & space most of the time: # In-memory test. ./malloc 50000000 2000 8192 159.2u 1.5s 2:41.85 99.3% 5+7742k 0+0io 0pf+0w ./gnumalloc 50000000 2000 8192 272.6u 0.4s 4:35.01 99.3% 5+8533k 0+0io 0pf+0w # Swap-space test. ./malloc 500000 14000 8192 6.5u 4.1s 4:08.87 4.3% 5+49209k 0+0io 9772pf+0w ./gnumalloc 500000 14000 8192 16.2u 14.5s 15:36.14 3.2% 5+54100k 0+0io 47651pf+0w # Small items test. ./malloc 20000000 20000 2048 67.0u 0.3s 1:07.83 99.2% 5+18199k 0+0io 4pf+0w ./gnumalloc 20000000 20000 2048 66.2u 0.3s 1:07.03 99.3% 5+18107k 0+0io 0pf+0w SANITY is not an option anymore. (!!)
* | A buglet when dumping and a stylistic point from Mike.phk1995-09-221-8/+8
| | | | | | | | Submitted by: Mike Pritchard <mpp@mpp.minn.net>
* | ``phkmalloc''phk1995-09-163-373/+1123
| | | | | | | | | | | | | | Performance is comparable to gnumalloc if you have sufficient RAM, and it screams around it if you don't. Compiled with "EXTRA_SANITY" until further notice. see malloc.3 for more details.
* | Make strtod conforms manpage, use isspace to skip initial whitespacesache1995-08-011-7/+3
| | | | | | | | instead of hardcoded whitespaces
* | Similar changes like in strtol, all this family is VERY brokenache1995-08-015-5/+15
| | | | | | | | in 8bit environment (isalpha at the end of digits)
* | strtol and atoi VERY broken in 8bit chars locale, i.e. if you pass somethingache1995-08-011-1/+3
| | | | | | | | | | | | like 38400<any 8bit char, isalpha> it not detect this stuff and produce very big number instead. Fixed by operating with unsigned char and checking for isascii. (secure/telnetd hits by it f.e.)
* | Remove trailing whitespace.rgrimes1995-05-3010-71/+78
| |
* | Fix a missing _hash() to prevent namespace pollution with the db/hash routines.jkh1995-03-281-5/+7
| | | | | | | | | | | | | | Grrr. If the dbhash routines weren't grossly overengineered I wouldn't even need to do this! :-( Also now export the hash_stats routine. Manpage coming RSN - I promise.
* | Hash 8bit chars without sign extensionache1995-03-261-3/+8
| |
* | Add the strhash family of routines. They provide a number of featuresjkh1995-03-262-2/+416
| | | | | | | | | | that the db/hash functions don't, and they're much simpler to use for low-overhead string hashing.
* | Don't attempt to lstat() the POSIXLY invalid empty pathname.bde1995-02-251-1/+1
| | | | | | | | | | realpath() still accepts "" as an arg and converts it to a canonical pathname for the current directory.
* | u_int -> unsigned int, so that we don't have to include <sys/types.h>bde1994-09-051-2/+2
| | | | | | | | or depend on <stdio.h> bogusly including it.
* | First crack at making libc work with the new make macros. It compiles onwollman1994-08-051-4/+8
| | | | | | | | | | my machine, and a simple static (genassym) and shared (sysctl) executable both work. Still to be done: RPCand YP merge.
* | This commit was generated by cvs2svn to compensate for changes in r1573,rgrimes1994-05-2762-0/+9451
|\ \ | |/ | | | | which included commits to RCS files with non-trunk default branches.
OpenPOWER on IntegriCloud