Commit Graph

157 Commits

Author SHA1 Message Date
marcel
625c1305b2 Add the libz derived files, added in the previous commit, to
CLEANFILES. We were not cleaning up after ourselves.
2002-10-19 02:23:09 +00:00
mike
c29fb91cfa Use the standardized CHAR_BIT constant instead of NBBY in userland. 2002-09-25 04:06:37 +00:00
mike
5d0fbddc4d o Merge <machine/ansi.h> and <machine/types.h> into a new header
called <machine/_types.h>.
o <machine/ansi.h> will continue to live so it can define MD clock
  macros, which are only MD because of gratuitous differences between
  architectures.
o Change all headers to make use of this.  This mainly involves
  changing:
    #ifdef _BSD_FOO_T_
    typedef	_BSD_FOO_T_	foo_t;
    #undef _BSD_FOO_T_
    #endif
  to:
    #ifndef _FOO_T_DECLARED
    typedef	__foo_t	foo_t;
    #define	_FOO_T_DECLARED
    #endif

Concept by:	bde
Reviewed by:	jake, obrien
2002-08-21 16:20:02 +00:00
scottl
f73fe2349f Fix a typo in #if 0 code 2002-08-21 09:30:45 +00:00
jake
17f7b80f47 Stash various networking paramters in the environment for the kernel
to pick up, ala pxe.
2002-07-31 20:17:06 +00:00
peter
82e2bf5274 Reimplement malloc/free debugging that includes the offending file:line
info.  This turned out to be rather useful on ia64 for tracking down
malloc/free problems.
Detect duplicate free()'s - otherwise these show up as a guard1 failure
and it looks like corruption instead of something simple like a second
free() where there shouldn't be.
Deal with libz using libc headers and not seeing the malloc/free stuff that
we provide in libstand.  Do similar nastiness to what is done for bzlib.

Tested on: i386, ia64 (compile, run)
2002-07-20 04:18:20 +00:00
peter
5747eb9b7d Add __printflike() to printf() and sprintf() prototypes. -ffreestanding
turns off gcc's builtin attributes for these functions and as a result
-Wformat does no checking. (argh)
2002-07-20 03:55:06 +00:00
jake
5be1e3f25d Add a hack (kludge?) to avoid trying to access files backed by disk
devices as though they were backed by network devices.
2002-07-07 23:01:36 +00:00
jake
4f65788a4e Ficl wants _setjmp and _longjmp. No need for weak symbols either. 2002-07-07 18:04:45 +00:00
peter
539fced72c To avoid anybody else getting caught out, these two files are really
in /sys/boot/common and are actually used there.
2002-06-29 09:21:14 +00:00
peter
49744d0078 Update from NetBSD 1.3 -> 1.6. Most notable, rev 1.6:
"Make in_cksum work on little endian machines"

This would explain a few things. :-)
2002-06-29 09:00:47 +00:00
mckusick
0694ff55c2 This commit adds basic support for the UFS2 filesystem. The UFS2
filesystem expands the inode to 256 bytes to make space for 64-bit
block pointers. It also adds a file-creation time field, an ability
to use jumbo blocks per inode to allow extent like pointer density,
and space for extended attributes (up to twice the filesystem block
size worth of attributes, e.g., on a 16K filesystem, there is space
for 32K of attributes). UFS2 fully supports and runs existing UFS1
filesystems. New filesystems built using newfs can be built in either
UFS1 or UFS2 format using the -O option. In this commit UFS1 is
the default format, so if you want to build UFS2 format filesystems,
you must specify -O 2. This default will be changed to UFS2 when
UFS2 proves itself to be stable. In this commit the boot code for
reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c)
as there is insufficient space in the boot block. Once the size of the
boot block is increased, this code can be defined.

Things to note: the definition of SBSIZE has changed to SBLOCKSIZE.
The header file <ufs/ufs/dinode.h> must be included before
<ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and
ufs_lbn_t.

Still TODO:
Verify that the first level bootstraps work for all the architectures.
Convert the utility ffsinfo to understand UFS2 and test growfs.
Add support for the extended attribute storage. Update soft updates
to ensure integrity of extended attribute storage. Switch the
current extended attribute interfaces to use the extended attribute
storage. Add the extent like functionality (framework is there,
but is currently never used).

Sponsored by: DARPA & NAI Labs.
Reviewed by:	Poul-Henning Kamp <phk@freebsd.org>
2002-06-21 06:18:05 +00:00
sobomax
a6e203d83e Correct bswap64() prototype.
Submitted by:	glewis
MFC after:	1 day
		(assuming that there is re's approval)
2002-06-03 19:04:10 +00:00
schweikh
8e151d5620 Remove a URL from the middle of the BSD copyright (a clicko? a pasto?).
Fix typos:
s/evironment/environment
s/cont/const
s/_lonjmp/_longjmp

MFC after:  3 weeks
2002-06-02 10:05:55 +00:00
iedowse
663eaa7055 Use an explicitly-sized type instead of daddr_t for on-disk block
numbers.
2002-05-19 10:50:38 +00:00
phk
b65cf85e06 UFS indirect blocks are size u_int32_t, not daddr_t 2002-05-18 09:07:12 +00:00
phk
194e75e678 Add __divdi3() and __moddi3() to libstand. We will need them for UFS2.
Sponsored by:	DARPA & NAI Labs.
2002-05-13 13:31:20 +00:00
phk
b56258917e #include <sys/disklabel.h> to get BBSIZE. 2002-05-12 20:58:18 +00:00
ru
8e77093d64 Added new bsd.incs.mk which handles installing of header files
via INCS.  Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files.  Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1.  Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

	kerberos5/lib/libtelnet/Makefile
	lib/libbz2/Makefile
	lib/libdevinfo/Makefile
	lib/libform/Makefile
	lib/libisc/Makefile
	lib/libmenu/Makefile
	lib/libmilter/Makefile
	lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD.  Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".
2002-05-12 16:01:00 +00:00
obrien
668efa1945 libstand needs _setjmp/_longjmp for FICL.
Submitted by:	jake
2002-04-13 22:09:53 +00:00
obrien
bf968c7e19 Use -ffreestanding. It is REQUIRED by GCC 3.1 on all architectures.
I don't like putting this very-GCC centric option here; but no one as given
a better idea of handling it.

Reviewed by:	jhb
2002-04-09 20:38:29 +00:00
obrien
556e4344ba Break the sparc64 build. I expect those that complained about this commit
to fix the sparc64 case to their liking.
2002-04-09 05:34:22 +00:00
obrien
393a3afca0 sparc64 grew _setjmp/_longjmp. 2002-04-08 20:46:07 +00:00
obrien
5a69396214 Use -ffreestanding. 2002-04-08 20:45:44 +00:00
obrien
f597ce10f8 Remove __P() usage. 2002-03-21 23:54:04 +00:00
obrien
24a8f39238 Remove 'register' keyword. 2002-03-21 23:39:28 +00:00
sobomax
e255cccc77 Kill debugging printf() slipped into my last commit.
Noticed by:		jhb
Hall of shame entry:	sobomax
2002-03-21 07:31:48 +00:00
peter
5e745bc411 Add -ffreestanding to CFLAGS for ia64. This should probably be global
like on the kernel.
2002-03-19 12:03:05 +00:00
sobomax
7069dbebf0 Add splitfs vfs layer into libstand, which allows loading big kernels and
modules split across several physical medias. Following is how it works:

The splitfs code, when asked to open "foo" looks for a file "foo.split"
which is a text file containing a list of filenames and media names, e.g.

	foo.aa "Kernel floppy 1"
	foo.ab "Kernel floppy 2"
	foo.ac "Kernel and modules floppy"

For each file segment, the process is:

- try to open the file
- prompt "Insert the disk labelled <whatever> and press any key..."
- try to open the file
- return error if file could not be located

RE team is free to use this feature in the upcoming 5.0-DP1.

Reviewed by:	msmith, dcs
2002-03-17 12:18:05 +00:00
mike
bb553b01c5 o Don't require long long support in bswap64() functions.
o In i386's <machine/endian.h>, macros have some advantages over
  inlines, so change some inlines to macros.
o In i386's <machine/endian.h>, ungarbage collect word_swap_int()
  (previously __uint16_swap_uint32), it has some uses on i386's with
  PDP endianness.

Submitted by:	bde

o Move a comment up in <machine/endian.h> that was accidentially moved
  down a few revisions ago.
o Reenable userland's use of optimized inline-asm versions of
  byteorder(3) functions.
o Fix ordering of prototypes vs. redefinition of byteorder(3)
  functions, so that the non-GCC (libc asm) case has proper
  prototypes.
o Add proper prototypes for byteorder(3) functions in <sys/param.h>.
o Prevent redundant duplicate prototypes by making use of the
  _BYTEORDER_PROTOTYPED define.
o Move the bswap16(), bswap32(), bswap64() C functions into MD space
  for platforms in which asm versions don't exist.  This significantly
  reduces the complexity of some things at the cost of duplicate code.

Reviewed by:	bde
2002-03-09 21:02:16 +00:00
tmm
41068000f6 Add the following functions/macros to support byte order conversions and
device drivers for bus system with other endinesses than the CPU (using
interfaces compatible to NetBSD):

- bwap16() and bswap32(). These have optimized implementations on some
  architectures; for those that don't, there exist generic implementations.
- macros to convert from a certain byte order to host byte order and vice
  versa, using a naming scheme like le16toh(), htole16().
  These are implemented using the bswap functions.
- stream bus space access functions, which do not perform a byte order
  conversion (while the normal access functions would if the bus endianess
  differs from the CPU endianess).

htons(), htonl(), ntohs() and ntohl() are implemented using the new
functions above for kernel usage. None of the above interfaces is currently
exported to user land.

Make use of the new functions in a few places where local implementations
of the same functionality existed.

Reviewed by:	mike, bde
Tested on alpha by:	mike
2002-02-27 17:16:18 +00:00
mike
b2f3aa6012 o Move NTOHL() and associated macros into <sys/param.h>. These are
deprecated in favor of the POSIX-defined lowercase variants.
o Change all occurrences of NTOHL() and associated marcros in the
  source tree to use the lowercase function variants.
o Add missing license bits to sparc64's <machine/endian.h>.
  Approved by: jake
o Clean up <machine/endian.h> files.
o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>.
o Remove prototypes for non-existent bswapXX() functions.
o Include <machine/endian.h> in <arpa/inet.h> to define the
  POSIX-required ntohl() family of functions.
o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>,
  and <sys/param.h>.
o Prepend underscores to the ntohl() family to help deal with
  complexities associated with having MD (asm and inline) versions, and
  having to prevent exposure of these functions in other headers that
  happen to make use of endian-specific defines.
o Create weak aliases to the canonical function name to help deal with
  third-party software forgetting to include an appropriate header.
o Remove some now unneeded pollution from <sys/types.h>.
o Add missing <arpa/inet.h> includes in userland.

Tested on:	alpha, i386
Reviewed by:	bde, jake, tmm
2002-02-18 20:35:27 +00:00
bde
50885ba5f7 Fixed world breakage in previous commit. The generated headers are in
the current directory which is rarely ${.CURDIR}.
2002-02-02 00:20:32 +00:00
sobomax
6a6b9c7ad4 Complete bzip2-1.0.2 import.
MFC in:		14 days
2002-02-01 16:33:40 +00:00
jhb
94146e87db We support writing to at least one filesystem now.
PR:		kern/32389
Submitted by:	Jonathan Mini <mini@haikugeek.com>
Sponsored by:	ClickArray, Inc.
2001-12-11 00:04:28 +00:00
jhb
28b8b2f33b Add support for overwriting the existing contents of a file to the UFS
driver in libstand.  This specifically does not expand or truncate files
since the filesystem may be dirty or inconsistent.

PR:		kern/32389
Submitted by:	Jonathan Mini <mini@haikugeek.com>
Sponsored by:	ClickArray, Inc.
2001-12-11 00:03:10 +00:00
alfred
809ea551ba Back out my 'fix', resid is different for strategy than for write 2001-11-30 06:24:34 +00:00
alfred
f6d8d1050c Make the same fix for writes to RAW objects. 2001-11-30 05:59:47 +00:00
alfred
86a63aa9c3 write should return the number of bytes written, not 0 on success.
Submitted by: Jonathan Mini <mini@haikugeek.com>
PR: kern/32350
2001-11-30 05:54:30 +00:00
jhb
205e8146ba - Change the f_isdir field of struct file to be a flags field and two
new flags: F_ROOTDIR and F_RR (Rock Ridge present).
- Cache the SUSP LEN_SKP parameter in struct file as well.
- If we open() '/', then force a read of the directory's contents so we
  can examine the directory record of '.' to see if Rock Ridge is present.
- If Rock Ridge extensions are present, lookup Rock Ridge names in
  readdir().
2001-11-06 22:31:10 +00:00
jhb
51653ec753 - Add a simple SUSP parser.
- Use the SUSP parser to detect Rock Ridge (RRIP) extensions and to look
  up alternate names when opening files.
2001-11-06 19:59:19 +00:00
jhb
31e0ff725a Switch to using ANSI function declarations and add missing function
prototypes.  I'm tired of getting stupid bugs from changing function
parameters and not getting warnings from the compiler when I goof it up.
2001-11-06 17:13:05 +00:00
mike
a535f37a5c Make the output from assert() look more like the example in the C99
standard.

Requested by:	bde
2001-10-29 07:07:25 +00:00
mike
114c18db6c Only provide function information in compile environments that support
the C99 variable __func__ and never for C++.  Provide a more meaningful
example in the assert(3) manual.

Reviewed by:	asmodai, bde
2001-10-27 20:11:10 +00:00
peter
be540227ff Remove the -I../libc/${MACHINE_ARCH} that was there solely for
the #include "DEFS.h" that was only used on i386 (which has been fixed).
2001-10-26 21:20:23 +00:00
peter
45416fb0ae Change #include "DEFS.h" to <machine/asm.h>. 2001-10-25 01:30:54 +00:00
asmodai
4a6f23e243 Add __FBSDID.
Change __assert() function to print failing function name.
This makes us C99 conforming.
2001-10-24 18:12:43 +00:00
robert
38bb426327 Make this Makefile suitable for sparc64. 2001-10-15 14:27:37 +00:00
robert
05a6e99f71 Define the types iaddr_t and saddr_t for sparc64. 2001-10-15 13:50:47 +00:00
bde
94220967cf Compensate for "Compensate for header dethreading" by backing it out. 2001-10-10 17:48:44 +00:00