Commit Graph

992 Commits

Author SHA1 Message Date
Tim J. Robbins
e1bcce4f46 Replace the current implementations of ftw() and nftw() with the OpenBSD
implementations written by Todd C. Miller. These are cleaner, less buggy
and actively maintained.
2004-08-24 13:00:55 +00:00
Tim J. Robbins
17211a5f9a Let GCC know that ___runetype(), ___tolower() and ___toupper() are pure
functions, allowing it to generate better code for the <ctype.h> and
<wctype.h> functions. For example, it can now keep _CurrentRuneLocale
in a register across calls to these functions, and can delete calls to
___runetype() if the result is already known or not used.
2004-08-21 07:00:40 +00:00
Pawel Jakub Dawidek
e81856c34c Connect RAID3 GEOM class to the build. 2004-08-16 06:36:21 +00:00
Stefan Farfeleder
4dfac64545 Stop defining '_Complex' in a C99 environment, it is supposed to be a keyword. 2004-08-14 18:03:21 +00:00
Stefan Farfeleder
0edc8c86ca Use tabulators after '#define'. 2004-08-14 17:55:15 +00:00
Tim J. Robbins
8bdfc6bf38 Sort in dictionary order.
Suggested by:	ru
2004-08-12 12:36:04 +00:00
Tim J. Robbins
de6c9c9d5b Implement wcwidth() as an inline function. 2004-08-12 12:19:11 +00:00
Tim J. Robbins
c92997c22d Include _ctype.h instead of ctype.h to avoid namespace pollution. 2004-08-12 10:29:14 +00:00
Tim J. Robbins
16133e1530 Move some internal macros and inlines from ctype.h to a new file, _ctype.h,
which has been repo-copied from ctype.h. This will allow us to remove
namespace pollution from <wctype.h> and to make wcwidth() an inline function
without introducing more pollution.
2004-08-12 09:33:47 +00:00
Stefan Farfeleder
b902e8b239 Implement C99's standard header <tgmath.h>. It provides type-generic macros
for the <math.h> and <complex.h> functions that have float, double and long
double implementations.  Such type-generic macros expand to an actual
function, depending on the types of the macro arguments, eg. if <tgmath.h>
is included, the invocation cos(1.0f) calls the function cosf().
2004-08-08 20:05:47 +00:00
Pawel Jakub Dawidek
8a8fbaca32 Connect GEOM_MIRROR class to the build. 2004-07-30 23:18:53 +00:00
Tim J. Robbins
f0000ca014 Add __pure and __pure2 where appropriate. 2004-07-23 07:13:35 +00:00
Tim J. Robbins
affcb87197 Mark functions pure where applicable. 2004-07-23 02:29:37 +00:00
Tim J. Robbins
779f8b0d2a Mark functions pure where applicable. A notable exclusion is strcoll(),
which is not strictly pure because it calls malloc()/free() in some cases.
2004-07-23 02:20:05 +00:00
Tim J. Robbins
1949a3470f Implement the GNU extensions of mbsnrtowcs() and wcsnrtombs(). These are
convenient when the source string isn't null-terminated.

Implement the other conversion functions (mbstowcs(), mbsrtowcs(), wcstombs(),
wcsrtombs()) in terms of these new functions.
2004-07-21 10:54:57 +00:00
Marcel Moolenaar
a8028b2625 Re-implement this file, including copyright notice. Keep David Xu as
copyright owner. Typical bugs fixed by this are:
o  various style(9) bugs,
o  #ifdef'd out code,
o  lack of comments,
o  missing const,
o  introduction of obsolete functions,
o  missing __BEGIN_DECLS & __END_DECLS,

The major flaw in this version, that was also present in the previous
version is the lack of man page. Minor flaws undoubtedly still exist.
2004-07-17 17:05:12 +00:00
Tim J. Robbins
9531ef0fc1 Add fgetwln(), a wide character version of fgetln(). 2004-07-16 06:06:09 +00:00
David Xu
a3d4136ade Add proc_service.h, the common file both debugger and libthread_db will
use, program wants to load libthread_db.so should provid proc service
interface.
2004-07-15 03:43:18 +00:00
Tim J. Robbins
67aff1896c Add a new error code, REG_ILLSEQ, to indicate that a regular expression
contains an illegal multibyte character sequence.
2004-07-12 06:07:26 +00:00
Dag-Erling Smørgrav
fd078b3dd6 Reduce namespace pollution. 2004-07-09 13:52:42 +00:00
Tim J. Robbins
ee446de0b1 Add a function to iterate over all characters in a particular character
class. This is necessary in order to implement tr(1) efficiently in
multibyte locales, since the brute force method of finding all characters
in a class is infeasible with a 32-bit (or wider) wchar_t.
2004-07-08 06:43:37 +00:00
David Schultz
b03b864ac9 Add implementations of ftw(3) and nftw(3) and the corresponding header
ftw.h.  This is the implementation written by Joel Baker
<fenton@debian.org> for inclusion in NetBSD, but with several
bugfixes.

Obtained from:	Debian
2004-07-05 23:13:16 +00:00
Pawel Jakub Dawidek
e1237b285b Introduce GEOM_LABEL class.
This class is used for detecting volume labels on file systems:
UFS, MSDOSFS (FAT12, FAT16, FAT32) and ISO9660.
It also provide native labelization (there is no need for file system).

g_label_ufs.c is based on geom_vol_ffs from Gordon Tetlow.
g_label_msdos.c and g_label_iso9660.c are probably hacks, I just found
where volume labels are stored and I use those offsets here,
but with this class it should be easy to do it as it should be done by
someone who know how.
Implementing volume labels detection for other file systems also should
be trivial.

New providers are created in those directories:
/dev/ufs/ (UFS1, UFS2)
/dev/msdosfs/ (FAT12, FAT16, FAT32)
/dev/iso9660/ (ISO9660)
/dev/label/ (native labels, configured with glabel(8))

Manual page cleanups and some comments inside were submitted by
Simon L. Nielsen, who was, as always, very helpful. Thanks!
2004-07-02 19:40:36 +00:00
Tim J. Robbins
b7114d4a9c Fix typo: WRDE_DOOFS -> WRDE_DOOFFS.
Noticed by:	Stoned Elipot
2004-06-30 13:55:08 +00:00
Tim J. Robbins
838faf1c74 Now that <runetype.h> no longer brings in namespace pollution,
bring back the inline functions for the !__BSD_VISIBLE case.
2004-06-23 07:11:39 +00:00
Tim J. Robbins
ddc1eded85 Prefix the names of members of _RuneLocale and its sub-structures
with ``__'' to avoid polluting the namespace. This doesn't change the
documented rune interface at all, but breaks applications that accessed
_RuneLocale directly.
2004-06-23 07:01:44 +00:00
David E. O'Brien
49a3940873 Adjust the system endian and a.out headers to be more MI and cross-building
friendly.  Use the systems headers rather than local versions.

Reviewed by:	ru
2004-06-22 17:05:39 +00:00
Tim J. Robbins
8995b2315b Remove outdated comments. 2004-06-20 10:01:30 +00:00
Max Laier
02b199f158 Link ALTQ to the build and break with ABI for struct ifnet. Please recompile
your (network) modules as well as any userland that might make sense of
sizeof(struct ifnet).
This does not change the queueing yet. These changes will follow in a
seperate commit. Same with the driver changes, which need case by case
evaluation.

__FreeBSD_version bump will follow.

Tested-by:	(i386)LINT
2004-06-13 17:29:10 +00:00
Tim J. Robbins
f05d1a4641 Fix typo in putwc().
Noticed by:	stefanf
2004-06-07 10:31:10 +00:00
Tim J. Robbins
58d122c2e5 Use __isctype() instead of __istype() for iswdigit() and iswxdigit() for
consistency with <ctype.h>.
2004-05-31 12:44:50 +00:00
Stefan Farfeleder
8b5cd5a662 Add implementations for cimag{,f,l}, creal{,f,l} and conj{,f,l}. They are
needed for cases where GCC's builtin functions cannot be used and for
compilers that don't know about them.

Approved by:	das (mentor)
2004-05-30 09:21:56 +00:00
Stefan Farfeleder
fe1737b6f3 Remove the macros for creal{,f} and cimag{,f}. They failed to convert their
arguments to the needed type and so the result type depended on the argument
type.  Fixing them isn't really worth the effort because GCC emits the same
assembler code with or without them.

Not minded by:	ru
Approved by:	das (mentor)
2004-05-30 08:47:12 +00:00
Thomas Moestl
2815e4b0f9 Correct some types in the yp structures; this fixes a number of problems
on sparc64. Obtained from and cross-checked with the NetBSD version
of this file and the rpcgen-generated code.
2004-05-27 11:34:21 +00:00
Tim J. Robbins
84bb9aaa02 Bring back the macro versions of getwc(), getwchar(), putwc() and
putwchar(), but this time avoid redundantly declaring __stdinp and
__stdoutp when source files include both <stdio.h> and <wchar.h>.
2004-05-27 10:08:44 +00:00
Tim J. Robbins
30af8f30f7 Revert to rev. 1.36 until issues with -Wredundant-decls are sorted out. 2004-05-25 12:41:02 +00:00
Tim J. Robbins
15f1cbdd6a Fix typo in previous: getwc() should call fgetwc(), not the function
version of itself.

Noticed by:	stefanf
2004-05-25 12:02:49 +00:00
Tim J. Robbins
e7e4715db2 Provide trivial macro implementations of getwc(), getwchar(), putwc() and
putwchar() to reduce function call overhead.
2004-05-25 10:42:52 +00:00
Pawel Jakub Dawidek
680e586479 - Install includes used by STRIPE and NOP GEOM classes.
- Create needed directories.

Supported by:	Wheel - Open Technologies - http://www.wheel.pl
2004-05-20 10:29:26 +00:00
Peter Edwards
07dee1a777 Fix some^Wseveral style bugs from last commit.
Remove "sys/types.h" as "sys/param.h" is already included

Use cast rather than back-pointer to convert from public to private
version of FTS data, and so avoid littering fts.h with any of the
details.

Pointed out By: bde, kientzle
2004-05-12 21:38:39 +00:00
Bruce Evans
d98d9ce623 Fixed style bugs in previous commit (bogus forward declaration and
inconsistent capitalization in comments).
2004-05-10 09:36:26 +00:00
Peter Edwards
99ca5b8804 The FTS_NOSTAT option is an optimisation that reduces the number
of stat(2) calls by keeping an eye of the number of links a directory
has. It assumes that each subdirectory will have a hard link to its
parent, to represent the ".." node, and stops calling stat(2) when
all links are accounted for in a given directory.

This assumption is really only valid for UNIX-like filesystems: A
concrete example is NTFS. The NTFS "i-node" does contain a link
count, but most/all directories have a link count between 0 and 2
inclusive. The end result is that find on an NTFS volume won't
actually traverse the entire hierarchy of the directories passed
to it. (Those with a link count of two are not traversed at all)

The fix checks the "UFSness" of the filesystem before enabling the
optimisation.

Reviewed By: Tim Kientzle (kientzle@)
2004-05-08 15:09:02 +00:00
Pawel Jakub Dawidek
01b013a1ee - Look into geom/gate/ and geom/concat/ for includes.
- Put geom/ subdirectories into separate line,
  while there are more to come.
2004-04-30 16:23:08 +00:00
Tim J. Robbins
e267671499 Make isblank() visible in the C99 namespace.
PR:		63371
Submitted by:	Stefan Farfeleder
2004-04-21 13:25:55 +00:00
Tim J. Robbins
257982eb0f Parenthesize function names in masking macros for getc() etc. for the
benefit of obsolete C preprocessors.
2004-03-20 11:45:52 +00:00
Tim J. Robbins
567d74a5ec Re-add macro versions of getc(), getchar(), putc(), putchar(), feof(),
ferror(), fileno() and clearerr(), using the value of __isthreaded to
decide between the fast inline single-threaded code and the more
general function equivalent. This gives most of the performance
benefits of the old unsafe macros while preserving thread safety.
2004-03-17 01:43:08 +00:00
Dag-Erling Smørgrav
5b3ce02186 Don't try to pass off a struct sockaddr as a struct sockaddr_in when it
may in fact very well be a struct sockaddr_in6.  Just use plain struct
sockaddr.

This brings us yet another step closer to a clean -O2 build.
2004-03-15 17:08:28 +00:00
Max Laier
278445ba35 Add skeleton build dirs for pf userland:
libexec/ftp-proxy	- ftp proxy for pf
 sbin/pfctl		- equivalent to sbin/ipf
 sbin/pflogd		- deamon logging packets via if_pflog in pcap format
 usr.sbin/authpf	- authentification shell to modify pf rulesets

Bring along some altq headers used to satisfy pfctl/authpf compile. This
helps to keep the diff down and will make it easy to have a altq-patchset
use the full powers of pf.

Also make sure that the pf headers are installed.

This does not link anything to the build. There will be a NO_PF switch for
make.conf once pf userland is linked.

Approved by:	bms(mentor)
2004-02-28 21:50:50 +00:00
Bruce M Simpson
c39ebb1dbb Sync HEAD sources to vendor branch import of routed v2.27 from rhyolite.com.
Update <protocols/routed.h> for the MD5 changes requested in bin/35843.
Preserve local changes.

Education by:	obrien, markm, pointy-stick
PR:		bin/35843 (and doubtless others)
2004-02-25 23:45:57 +00:00
Brian Feldman
33dee81933 Make the resolver(3) and many associated interfaces much more reentrant.
The getaddrinfo(3), getipnodebyname(3) and resolver(3) can coincide now
with what should be totally reentrant, and h_errno values will now
be preserved correctly, but this does not affect interfaces such as
gethostbyname(3) which are still mostly non-reentrant.

In all of these relevant functions, the thread-safety has been pushed
down as far as it seems possible right now.  This means that operations
that are selected via nsdispatch(3) (i.e. files, yp, dns) are protected
still under global locks that getaddrinfo(3) defines, but where possible
the locking is greatly reduced.  The most noticeable improvement is
that multiple DNS lookups can now be run at the same time, and this
shows major improvement in performance of DNS-lookup threaded programs,
and solves the "Mozilla tab serialization" problem.

No single-threaded applications need to be recompiled.  Multi-threaded
applications that reference "_res" to change resolver(3) options will
need to be recompiled, and ones which reference "h_errno" will also
if they desire the correct h_errno values.  If the applications already
understood that _res and h_errno were not thread-safe and had their own
locking, they will see no performance improvement but will not
actually break in any way.

Please note that when NSS modules are used, or when nsdispatch(3)
defaults to adding any lookups of its own to the individual libc
_nsdispatch() calls, those MUST be reentrant as well.
2004-02-25 21:03:46 +00:00