Commit Graph

1544 Commits

Author SHA1 Message Date
joerg
4d12bfcd15 Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
2013-09-12 15:36:14 +00:00
riastradh
04e877f3a1 Fix libkern's prototype for explicit_memset. 2013-08-28 16:20:38 +00:00
matt
f0f9ccc930 Use LIBISPRIVATE?= yes 2013-08-21 08:30:50 +00:00
matt
b3356a40df Thumbify 2013-08-21 08:30:18 +00:00
matt
e1512a262a Simplify by using LIBISPRIVATE?= yes 2013-08-21 05:50:14 +00:00
matt
9a5bd26b35 Some assembly files need to compiled -marm since they are Thumb compatible. 2013-08-20 21:43:03 +00:00
matt
99a7d6ba8e Fix typos (prX not cpX) 2013-08-12 23:42:14 +00:00
matt
0009e83bf7 Add EHABI unwind stubs to libkern so prevent errors in linking if unwind
tables are present.
2013-08-12 23:22:12 +00:00
matt
015cebed78 Support thumb 2013-08-11 04:58:01 +00:00
skrll
0bdf107fbc Another codegen bug that fixes (in this case lots of) atf tests.
rump_server doesn't die so much now.
2013-07-23 14:52:07 +00:00
matt
516ab0fa43 Adjust for coldfire 2013-07-18 22:14:48 +00:00
matt
6b35aaa5b7 Fix typo. 2013-07-18 12:54:08 +00:00
matt
10fa00e357 Reorder a little to make clearer. 2013-07-18 12:53:09 +00:00
matt
0ad8b94ed8 Keep stack longword aligned.
Use longword ops for %d2.
2013-07-18 12:42:24 +00:00
matt
8d43a067dd Convert to motorola syntax 2013-07-18 12:40:42 +00:00
matt
6dedf03e19 Convert to morotola syntax 2013-07-18 12:29:30 +00:00
matt
547d5de4df Don't use %d2 (violates the ABI since it wasn't saved), use %a0 instead.
Use a pcrelative access for the local data avoiding the GOT.
2013-07-18 12:16:40 +00:00
rmind
7ae1c4ed1b libkern: add murmurhash module. 2013-06-29 16:02:01 +00:00
riastradh
82db4b9858 Replace consttime_bcmp/explicit_bzero by consttime_memequal/explicit_memset.
consttime_memequal is the same as the old consttime_bcmp.
explicit_memset is to memset as explicit_bzero was to bcmp.

Passes amd64 release and i386/ALL, but I'm sure I missed some spots,
so please let me know.
2013-06-24 04:21:19 +00:00
dholland
e1610ba4cb Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of
the following symbols so as to disambiguate fully. (Christos already
did the lfs ones.)

   lblkno
   lblktosize
   lfragtosize
   numfrags
   blkroundup
   fragroundup
2013-06-23 07:28:36 +00:00
riastradh
bfb8ca3f2e Account bytes drawn from initial call to libkern arc4random.
XXX This unlocked initialization looks rather bogus...
2013-06-23 02:38:22 +00:00
riastradh
6290b0987e Rework rndsink(9) abstraction and adapt arc4random(9) and cprng(9).
rndsink(9):
- Simplify API.
- Simplify locking scheme.
- Add a man page.
- Avoid races in destruction.
- Avoid races in requesting entropy now and scheduling entropy later.

Periodic distribution of entropy to sinks reduces the need for the
last one, but this way we don't need to rely on periodic distribution
(e.g., in a future tickless NetBSD).

rndsinks_lock should probably eventually merge with the rndpool lock,
but we'll put that off for now.

cprng(9):
- Make struct cprng_strong opaque.
- Move rndpseudo.c parts that futz with cprng guts to subr_cprng.c.
- Fix kevent locking.  (Is kevent locking documented anywhere?)
- Stub out rump cprng further until we can rumpify rndsink instead.
- Strip code to grovel through struct cprng_strong in fstat.
2013-06-23 02:35:23 +00:00
dholland
2737439da3 fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB()
dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()

(Christos already did the lfs ones a few days back)
2013-06-23 02:06:04 +00:00
matt
47a6ce0396 Add back {,u}modsi3 for libkern since if we are building standalone tools
we might be using the old ABI and might need them.
2013-06-21 05:06:24 +00:00
matt
7213984b98 modsi3/umodsi3 are only needed !EABI arm 2013-06-20 07:29:50 +00:00
dholland
64912b9b11 blkoff() -> mfs_blkoff()
XXX: this shouldn't be using "mfs" for its symbols as we also have
XXX: sys/ufs/mfs.
2013-06-19 18:18:12 +00:00
dholland
f1333577b5 Rename ambiguous macros:
MAXDIRSIZE -> UFS_MAXDIRSIZE or LFS_MAXDIRSIZE
   NINDIR -> FFS_NINDIR, EXT2_NINDIR, LFS_NINDIR, or MFS_NINDIR
   INOPB -> FFS_INOPB, LFS_INOPB
   INOPF -> FFS_INOPF, LFS_INOPF
   blksize -> ffs_blksize, ext2_blksize, or lfs_blksize
   sblksize -> ffs_blksize

These are not the only ambiguously defined filesystem macros, of
course, there's a pile more. I may not have found all the ambiguous
definitions of blksize(), too, as there are a lot of other things
called 'blksize' in the system.
2013-06-19 17:51:25 +00:00
christos
855bb66ef7 Prefix most of the cpp macros with lfs_ and LFS_ to avoid conflicts with ffs.
This was done so that boot blocks that want to compile both FFS and LFS in
the same file work.
2013-06-18 18:18:57 +00:00
dholland
5a420c1b9a Stick UFS_ in front of these symbols:
DIRBLKSIZ
   DIRECTSIZ
   DIRSIZ
   OLDDIRFMT
   NEWDIRFMT

Part of PR 47909.
2013-06-09 17:57:08 +00:00
dholland
89582ef58a Build properly against the lfs changes. 2013-06-09 00:02:33 +00:00
tsutsui
ab5da9a864 Wrap >80 char lines that overflowed on NDADDR -> EXT2FS_NDADDR changes. 2013-05-10 15:22:37 +00:00
matt
5f058922b3 This change arm, armeb, earm, earmeb, earmhf, earmhfeb so all builds that
share a MACHINE_ARCH for userland so that except for etc, will produce
identical sets.

usr/include/machine now points to usr/include/arm
2013-05-02 03:56:38 +00:00
martin
e7f80397d9 Make the check in close() for a non-deflatable file mode symetric to
the one in open().
Avoids dealloc() calls on NULL.
2013-04-14 22:23:28 +00:00
nakayama
99b8f1ddbf Remove duplicate source files. 2013-03-17 04:47:16 +00:00
nakayama
e923193871 Revert previous. christos fixed the root cause. 2013-03-17 04:45:46 +00:00
christos
ab495c9f87 undo sparc64 kludge 2013-03-17 00:47:13 +00:00
nakayama
809b806d54 Make sparc64 32-bit kernel buildable. 2013-03-14 11:53:33 +00:00
christos
d3a58d87a8 amend previous sparc64 fix: rump does not know about memcpyset.s 2013-03-11 11:44:48 +00:00
christos
49d47d88c9 On sparc64 memcpy and memset are provided by memcpyset.s (should have been
memcpyset.S, but...). Don't include them in the build because it breaks the
modular build where the kernel library is built as an object.
2013-03-10 07:31:03 +00:00
christos
642baa00c2 recognize OpenBSD too 2013-03-02 22:04:06 +00:00
matt
f35a96a42a Modify earm rule to match any machine_arch starting with earm. 2013-02-06 07:18:15 +00:00
matt
080a1c2724 Add strnlen.c to SRCS (which will automatically use the .S version if it
exists).
2013-01-23 22:34:37 +00:00
macallan
b3be12c418 pull in strnlen.S 2013-01-23 20:38:27 +00:00
dholland
dcd34a91c5 Stuff UFS_ in front of a few of ufs's symbols to reduce namespace
pollution. Specifically:
   ROOTINO -> UFS_ROOTINO
   WINO -> UFS_WINO
   NXADDR -> UFS_NXADDR
   NDADDR -> UFS_NDADDR
   NIADDR -> UFS_NIADDR
   MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN
   MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)

Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have
the same values in ext2fs and ffs.

No functional change intended.
2013-01-22 09:39:11 +00:00
matt
e140e7a99f Pass down an empty CPUFLAGS since CPUFLAGS is contained in CFLAGS. 2012-12-12 15:12:11 +00:00
matt
d341a32e61 Don't pass down CPUFLAGS since its value is already in CFLAGS. 2012-12-12 15:10:27 +00:00
christos
293b3c5124 add new divsi3 related files. 2012-10-30 16:36:03 +00:00
christos
58e206816c add split files. 2012-10-10 02:15:31 +00:00
matt
325a8822fe Add ARMv5 support the clz instruction 2012-09-01 11:24:36 +00:00
drochner
8588929dc5 Add "consttime_bcmp" and "explicit_bzero" functions for both kernel
abd userland, as proposed on tech-security, with explicit_bzero using
a volatile function pointer as suggested by Alan Barrett.
Both do what the name says. For userland, both are prefixed by "__"
to keep them out of the user namespace.
Change some memset/memcmp uses to the new functions where it makes
sense -- these are just some examples, more to come.
2012-08-30 12:16:48 +00:00
joerg
c14f2d4ef8 Deal with optional HAVE_GCC. 2012-08-10 16:05:26 +00:00
matt
9c2af1c9cc If earm*, compile new aeabi runtime routines. 2012-08-06 02:14:57 +00:00
mhitch
ddc56403a8 Fix cd9660_read() to not read past the end of the file. This would result
in incorrect resid values, and causes the read of /boot.cfg to ignore the
file.  If the requested transfer extends past the end of the file, force
the internal buffer to be used, and when transferring data from the
internal buffer, limit the transfer to what's left in the file.  CDROM
boot will now process the /boot.cfg file.
2012-07-23 00:49:20 +00:00
dsl
6a03bb6b37 Remove the code that tries to load the "ffs" kernel module during boot.
This is in line with the core decision than even modular kernels should
  contain the ffs code.
I've left in the code that tries to load "nfs" and "ext2fs", but it
  isn't clear that is necessary.
Removes a warning message that (usually) flashes past to fast to read.
AFAICT all the relevant kernels contain ffs (and nfs for that matter).
2012-05-21 21:34:16 +00:00
tls
2b09c6c851 Add a spin mutex to the rndsink structure; it is used to avoid lock
ordering and sleep-holding-locks problems when rekeying, and thus
to avoid a nasty race between cprng destruction and reseeding.
2012-04-10 14:02:27 +00:00
tsutsui
1296da9587 Fix a bug that libsa ls doesn't work in case of filename with directory path.
("ls /path/and/file" always returns not found)  From MINIX via Evgeniy Ivanov.
2012-03-02 12:08:44 +00:00
njoly
923a542ecd void function _arc4randbytes cannot return a value. 2012-02-14 18:57:35 +00:00
dholland
7609b9bc56 Migrate one last leftover bit (used only by the kernel now) to
sys/ufs/ufs and remove the old quota headers and no-longer-used shared
code. Ok by releng.
2012-02-05 14:19:02 +00:00
tls
7b0b7dedd9 Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code
   to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
   source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
   avoid expensive operations on disabled entropy sources; make the
   rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
   have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
   system events, and skew between clocks, with a sample implementation
   for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files).  Tested with release
builds on amd64 and evbarm and live testing on amd64.
2012-02-02 19:42:57 +00:00
rmind
c1591c4ef3 Add CTASSERT_SIGNED() and CTASSERT_UNSIGNED(). 2012-01-22 02:57:36 +00:00
joerg
714fe69669 Don't use __cmsg_alignbytes in the kernel. Mark it as constant function
for userland as its value never changes. This allows the compiler to
optimise most invocations away.
2012-01-20 00:25:29 +00:00
christos
488f092662 PR/45796: Evgeniy Ivanov minixfs3 support. 2012-01-16 18:46:20 +00:00
christos
8ead40fd5d PR/45796: Evgeniy Ivanov minixfs3 support.
Split out fn_match since we have 3 copies now.
2012-01-16 18:44:13 +00:00
tsutsui
c2e8ce644b Apply the following patch submitted by Evgeniy Ivanov:
http://mail-index.NetBSD.org/tech-kern/2011/12/15/msg012226.html
http://mail-index.NetBSD.org/tech-kern/2011/12/17/msg012229.html

 - add 'ls' op to struct fs_ops to support ls command on each fs,
   enabled by -DLIBSA_ENABLE_LS_OP and SAMISCMAKEFLAGS+="SA_ENABLE_LS_OP=yes"
   in libsa
 - split sys/lib/libsa/ufs_ls.c into UFS specific part and MI part (ls.c)
   that opens the target fs and calls fs-depedent XXX_ls() functions
 - add a ls op for ext2fs
   (all other fs than ufs and ext2fs don't have actual ls ops yet)
 - replace existing MD ufs_ls() calls with this new MI ls()

The original patch was written for i386 and ext2fs.
zaurus zboot has been tested by nonaka@.
ews4800mips and x68k loaders have been tested by me (with several fixes).
landisk might be okay since it was almost copied from i386.

XXX1: "ls" op in fs_ops looks a bit inconsistent, but we will be able to
      replace it with real fs ops like readdir if it's really worth
XXX2: someone might have to check sys/arch/ia64/stand/efi/libefi/efifs_ls.c
2011-12-25 06:09:08 +00:00
drochner
47be4b7567 make "rs" static -- this name is too unspecific for the global namespace 2011-11-29 13:16:26 +00:00
tls
38f95ba1b7 Remove rnd_extract_data from the public kernel API (it is for use by the
stream generators only).  Clean up some related minor issues.
2011-11-29 03:50:31 +00:00
tls
f27d6532f5 Remove arc4random() and arc4randbytes() from the kernel API. Replace
arc4random() hacks in rump with stubs that call the host arc4random() to
get numbers that are hopefully actually random (arc4random() keyed with
stack junk is not).  This should fix some of the currently failing anita
tests -- we should no longer generate duplicate "random" MAC addresses in
the test environment.
2011-11-28 08:05:05 +00:00
tsutsui
48b15c9676 Disable a DIAGNOSTIC test which causes kernel stack overflow on all arm ports.
Boot failure is reported from several arm users (nonaka@, ryo@, and others),
and too large auto variable in arc4_randrekey() is pointed out by enami@.
2011-11-27 00:09:04 +00:00
enami
0ceee4c5f8 Use exact 32bit integral type to declare variable to store
32bit random value.  This is necessary since it is overwritten
by four bytes.
2011-11-26 14:04:20 +00:00
enami
6f7055e2a8 Fix white space usage. 2011-11-26 13:53:37 +00:00
joerg
916c58b88e Spell restrict with __. 2011-11-25 12:45:00 +00:00
para
4255d01378 make it compile without DIAGNOSTIC defined 2011-11-20 15:37:31 +00:00
tls
3afd44cf08 First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>.  This change includes
the following:

	An initial cleanup and minor reorganization of the entropy pool
	code in sys/dev/rnd.c and sys/dev/rndpool.c.  Several bugs are
	fixed.  Some effort is made to accumulate entropy more quickly at
	boot time.

	A generic interface, "rndsink", is added, for stream generators to
	request that they be re-keyed with good quality entropy from the pool
	as soon as it is available.

	The arc4random()/arc4randbytes() implementation in libkern is
	adjusted to use the rndsink interface for rekeying, which helps
	address the problem of low-quality keys at boot time.

	An implementation of the FIPS 140-2 statistical tests for random
	number generator quality is provided (libkern/rngtest.c).  This
	is based on Greg Rose's implementation from Qualcomm.

	A new random stream generator, nist_ctr_drbg, is provided.  It is
	based on an implementation of the NIST SP800-90 CTR_DRBG by
	Henric Jungheim.  This generator users AES in a modified counter
	mode to generate a backtracking-resistant random stream.

	An abstraction layer, "cprng", is provided for in-kernel consumers
	of randomness.  The arc4random/arc4randbytes API is deprecated for
	in-kernel use.  It is replaced by "cprng_strong".  The current
	cprng_fast implementation wraps the existing arc4random
	implementation.  The current cprng_strong implementation wraps the
	new CTR_DRBG implementation.  Both interfaces are rekeyed from
	the entropy pool automatically at intervals justifiable from best
	current cryptographic practice.

	In some quick tests, cprng_fast() is about the same speed as
	the old arc4randbytes(), and cprng_strong() is about 20% faster
	than rnd_extract_data().  Performance is expected to improve.

	The AES code in src/crypto/rijndael is no longer an optional
	kernel component, as it is required by cprng_strong, which is
	not an optional kernel component.

	The entropy pool output is subjected to the rngtest tests at
	startup time; if it fails, the system will reboot.  There is
	approximately a 3/10000 chance of a false positive from these
	tests.  Entropy pool _input_ from hardware random numbers is
	subjected to the rngtest tests at attach time, as well as the
	FIPS continuous-output test, to detect bad or stuck hardware
	RNGs; if any are detected, they are detached, but the system
	continues to run.

	A problem with rndctl(8) is fixed -- datastructures with
	pointers in arrays are no longer passed to userspace (this
	was not a security problem, but rather a major issue for
	compat32).  A new kernel will require a new rndctl.

	The sysctl kern.arandom() and kern.urandom() nodes are hooked
	up to the new generators, but the /dev/*random pseudodevices
	are not, yet.

	Manual pages for the new kernel interfaces are forthcoming.
2011-11-19 22:51:18 +00:00
mrg
030041f5bd use LIBISPRIVATE instead of home-grown. 2011-10-30 00:28:57 +00:00
christos
63efa6113b shouldn't need .size for ppc64. 2011-10-28 02:00:50 +00:00
chs
e873fd069d use gcc builtin for memset() on vax too. 2011-10-01 16:06:24 +00:00
christos
b3bf6991f2 Don't include <sys/systm.h> because it brings in too much stuff that
conflicts with standalone code. Instead modify kern_assert() to be like
panic() and call that.
2011-09-29 20:50:09 +00:00
jym
325494fe33 Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html
2011-09-27 01:02:33 +00:00
jym
c0cdfbbb3d Do as Joerg said and kill the __STDC__ blocks. They only make sense for
things used by assembler, which won't be the case for these macros.
2011-09-25 20:31:18 +00:00
jym
b0471da334 Make strnlen(3) accessible in kernel. ok christos@. 2011-09-01 22:35:17 +00:00
dyoung
9943264696 Build and install ppath(3), property-list paths library. 2011-08-26 21:22:07 +00:00
matt
0435f73056 Fix bug when only restoring r31 (lr was not being restored properly). 2011-08-12 14:48:00 +00:00
uwe
89e9839f44 Reword the comment about "millicode" nature of these functions and add
it to sdivsi3_i4i.S too.
2011-08-05 02:00:25 +00:00
uwe
41f19aa9d6 Reword the comment about "millicode" nature of these functions and add
it to sdivsi3.S too.

Remove !_KERNEL code left over from the days when we shared these
files with userland.

Use .L prefix for local label.
2011-08-05 01:59:39 +00:00
uwe
ab79e8db68 For unsignad integer division gcc used to emit a call to __udivsi3
"millicode" function that uses compiler-private ABI.  Newer gcc uses
heavily tuned __udivsi3_i4i that is NOT compatible with __udivsi3
because it's expected to clobber different registers.  We don't want
to link the kernel against libgcc and we don't have resources to write
heavily tuned version ourselves, so clone __udivsi3 but adjust it to
conform to the __udivsi3_i4i clobber spec.

Ditto for signed division.

You can make gcc use old routines with -mdiv=call-div1 to avoid few
extra instructions to save/restore the right registers in the signed
division funcion.
2011-08-04 03:20:09 +00:00
jakllsch
a6deec34f7 Fix printf formating in ifdef DEBUG sections. 2011-07-30 03:43:20 +00:00
joerg
3eb244d801 Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
2011-07-17 20:54:30 +00:00
mrg
b259e2f2c8 revert the _i4i aliases. they are not the right thing. 2011-07-14 09:48:03 +00:00
mrg
2f4b41bf98 add weak aliases for __sdivsi3_i4i and __udivsi3_i4i. 2011-07-06 01:29:54 +00:00
matt
fee0e13d37 If GCC 4.0 or later, use __builtin_offsetof for offsetof.
This make GCC 4.5 with offsetof in mbuf.h and kern_cpu.c
2011-07-05 01:56:45 +00:00
mrg
db6886e029 apply some -O0 with gcc 4.5 and vax. 2011-07-03 15:29:34 +00:00
mrg
80d3d3c382 fix the names of the _END symbols passed to .size; fixes rump issues,
and kernels still work fine, and ofwboot still links.
2011-07-02 23:36:02 +00:00
matt
805a90b602 Add the _restgpr* and _savegpr* entries that GCC 4.5 wants. This file is
designed to support the other GCC 4.5 variants that may be required.
2011-07-02 03:35:03 +00:00
mrg
e405cd7d86 remove HAVE_GCC == 4 conditional 2011-06-20 08:22:43 +00:00
joerg
df3149f5ef Don't use C versions of memcmp, memcpy, memmove, memset and strchr
on x86 for standalone code. The assembler versions are much smaller.
2011-06-16 16:47:53 +00:00
joerg
be964ea63f Add an optional MD calling convention flag for use in libsa when space
optimisation is critical. Use this on i386 to switch to register passing
calling convention for the file system entry points and most assembler
call backs that have to preserve at least 3 registers.
2011-06-16 13:44:56 +00:00
joerg
c97378d081 Add an optional MD calling convention flag for use in libsa when space
optimisation is critical. Use this on i386 to switch to register passing
calling convention for the file system entry points and most assembler
call backs that have to preserve at least 3 registers.
2011-06-16 13:27:58 +00:00
mrg
42abd36401 catch up with the userland copy:
>revision 1.6
>date: 2011/03/23 20:54:35;  author: martin;  state: Exp;  lines: +2 -2
>Avoid using %g7

fixes rump on sparc, at least somewhat.
tested that normal kernels runs fine this with this change, too.
2011-06-13 03:23:53 +00:00
joerg
a216da57a6 Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
2011-05-26 12:56:24 +00:00
tsutsui
f38f34147b KNF a bit. 2011-05-20 16:33:07 +00:00
nakayama
99c51b3804 Use %zd for ssize_t, and %zu for size_t. 2011-05-13 23:35:09 +00:00
zoltan
b3cd019cf9 Separate the IP and UDP code paths inside libsa, so I can add HTTP booting
later.
2011-05-11 16:23:40 +00:00
bouyer
d9210c2405 Add a new libquota library, which contains some blocks to build and/or
parse quota plists; as well as a getfsquota() function to retrieve quotas
for a single id from a single filesystem (whatever filesystem this is:
a local quota-enabled fs or NFS). This is build on functions getufsquota()
(for local filesystems with UFS-like quotas) and getnfsquota();
which are also available to userland programs.
move functions from quota2_subr.c to libquota or libprop as appropriate,
and ajust in-tree quota tools.
move some declarations from kernel headers to either sys/quota.h or
quota/quota.h as appropriate. ufs/ufs/quota.h still installed because
it's needed by other installed ufs headers.
ufs/ufs/quota1.h still installed as a quick&dirty way to get a code
using the old quotactl() to compile (just include ufs/ufs/quota1.h instead of
ufs/ufs/quota.h - old code won't compile without this change and this is
on purpose).
Discussed on tech-kern@ and tech-net@ (long thread, but not much about
libquota itself ...)
2011-03-24 17:05:39 +00:00
jakllsch
bdf5f7401d Add quad srcs if building x86_64 32-bit libkern. 2011-02-26 18:17:55 +00:00
matt
7fe5f9cb4c Add quad srcs if using MIPS O32 ABI 2011-02-26 16:28:10 +00:00
joerg
eb077f08e0 No trailing 0 byte for hexdigits. 2011-02-25 00:20:36 +00:00
joerg
36ed38c29f Move HEXDIGIT to mvme68k's sboot. It seems to be the only user.
Save a byte by explicitly specifying the size.
2011-02-25 00:17:35 +00:00
matt
7a630fe12e Define CTASSERT in terms of __CTASSERT 2011-02-19 02:02:14 +00:00
christos
392bc55180 revert bad whitespace change. 2011-02-17 21:15:31 +00:00
christos
abd082246f fix -Wself-assign warning 2011-02-17 19:38:48 +00:00
rmind
9b6bd2d968 Remove clause 3 (UCB advertising clause) from the University of Utah
copyright.  Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
2011-02-08 20:20:06 +00:00
skrll
f80f065ff5 This file needs opt_multiprocessor.h early so we pick up the right
definition from cpu.h, etc.

XXX should revisit the _STANDALONE vs _KERNEL split
2011-01-31 12:10:58 +00:00
matt
ecfd85d839 Fix KDASSERTMSG defintions for !DEBUG 2011-01-26 01:02:46 +00:00
matt
084c578c30 Add KDASSERTMSG (KDASSERT already exists). 2011-01-24 22:53:07 +00:00
skrll
ed569699ed Fix build. 2011-01-24 15:01:30 +00:00
skrll
024e5c66df Fix MULTIPROCESSOR curlwp/curcpu handling... missed in previous commit. 2011-01-22 10:58:44 +00:00
matt
51db1c5cf3 Kill _NOREGNAMES. Everything should be using %rX now. If it doesn't it
soon will.
2011-01-17 08:23:53 +00:00
matt
19cb1fa295 Don't define _NOREGNAMES since all of libkern is now compiled with it. 2011-01-17 07:07:36 +00:00
matt
156ba6dbc5 Add -D_NOREGNAMES 2011-01-16 03:22:19 +00:00
jakllsch
dc93c72587 Pacify Clang -Wformat-security. 2011-01-06 02:45:13 +00:00
jakllsch
71481e188f Zero the in-memory super block after allocation. It contains a pointer
that, if not properly initialized, could be improperly deallocated.
2011-01-02 21:37:01 +00:00
christos
e5c1816344 fix slightly wrong format. 2010-12-26 23:55:52 +00:00
he
b7a6da19d6 Print size_t and ssize_t with %zd, not just %d.
(How did this build before?)
2010-12-26 17:48:37 +00:00
jakllsch
fbe9cca8ce Correct recently exposed printf format problem. 2010-12-25 01:08:44 +00:00
christos
62010e9c69 panic takes a printf format too. 2010-12-24 23:12:28 +00:00
ws
45d6c7c30c Allow multiple path separators between/after directory names.
Problem found while analyzing PR kern/43963.
2010-10-18 11:08:26 +00:00
jym
b60c232a64 Use standard ELF types for ELF code, instead of paddr_t. paddr_t should
only be used for low level code, like virtual memory internals.
2010-09-16 00:26:49 +00:00
pooka
f3c7386990 Rename jump label to something a little more negative. No, I'm
not doing it for cosmetic value or out of angst.  See, PIC_PROLOGUE
on i386 uses the "1" label internally.  Now, everything would be
fine and dandy for the first 551245 calls to random.  After that
p+q is negative and the jump is taken.  However, it is taken into
the middle of PIC_PROLOGUE instead of where upon superficial
examination we assumed we are jumping.  This causes wrong(tm) things
to happen and "ret" triggers a jump into hyperspace.

(no, I did not see that coming)
2010-09-07 20:35:50 +00:00
christos
e5690d15fe PR/43830: Valery Ushakov: libsa/loadfile_elf32.c loads .shstrtab into
unallocated memory. Don't load if counting.
2010-09-02 17:10:14 +00:00
christos
bd0a22e5e8 add a LOAD_BACKWARDS flag on sections that might load backwards. 2010-08-25 16:30:01 +00:00
christos
f2af08161f Add a new LOAD_MINIMAL flag to avoid loading sections that might seek backwards
and are not really needed like the note and the symbol section.
2010-08-25 16:23:23 +00:00
chs
b078ae7e33 print the correct error code if nfs_mount() fails. 2010-08-08 18:38:31 +00:00
pooka
2b801a94d6 fix typo 2010-05-11 21:50:35 +00:00
rmind
84b7918250 Fix KASSERTMSG() to be consistent with KASSERT() logic, not inverted.
Hi matt@!
2010-04-25 15:39:41 +00:00
jakllsch
a6fc850cd8 Ensure cd9660_read() gives accurate EOF indication.
Should fix PR/42983.
2010-03-22 16:57:54 +00:00
chs
04aa4da3b0 fix copy{in,out}{,str}() to return the error returned by uvm_fault().
fixes PR 41813.
2010-03-20 23:31:27 +00:00
uwe
73fb9af349 Add memset to libkern on vax, moving existing memset.S to src/common.
While kernel source code is supposed to use <machine/macros.h> via
<sys/param.h> and pick an inline asm version from there, gcc itself
can generate direct calls to memset() for structure initialization, so
the symbol must be provided.

Fixes INSTALL kernel, for which -Os caused gcc to use memset() call to
initialize a struct in uvm_fault_internal().
2010-03-15 11:46:49 +00:00
darran
38c72d335c DTrace: Add support for CTF sections in the netbsd elf image, load these
at boot.
Add a ksyms_mod_foreach() function to iterate a callback function over the
set of elf symbols for a specific module (netbsd included).
Add kern_ctf.c and mod_ctf_get() to allow the retrieval and decompression
of CTF sections for a specific module.
2010-03-12 21:43:10 +00:00
martin
0eda8d8e5e Add a prototype. 2010-02-11 21:28:16 +00:00
martin
dd8b03031c fix includes 2010-02-10 23:33:56 +00:00
martin
9b40c0f8c3 Utility function to lookup a symbol value in an elf symbol table - allows,
for example, a bootloader to access symbols in the just loaded kernel
(or module).
2010-02-10 21:54:47 +00:00
pgoyette
d03b2461a3 Remove kern_assert.c - it's not needed here cuz it's already pulled in
by sys/lib/libkern/Makefile.libkern

OK pooka@
2010-01-20 18:13:40 +00:00
pooka
793cda8e13 __assert.c -> kern_assert.c
(I don't fully understand why __assert.c is needed here.  maybe it
can be removed, but I don't have time to do a full set of mips builds
tonight)
2010-01-20 03:36:26 +00:00
pooka
654415b2b7 Get rid of last "easy" kernel symbols starting with __:
__assert -> kern_assert
__sigtimedwait1 -> sigtimedwait1
__wdstart -> wdstart1

The rest are MD and/or shared with userspace, so they will require
a little more involvement than what is available for this quick
"ride the 5.99.24 bump" action.
2010-01-19 22:28:30 +00:00
tsutsui
1aa1df4953 Add long long (%lld etc.) support and width (%02x etc.) support
in libsa printf(3).  Disabled by default but enabled by
-DLIBSA_PRINTF_LONGLONG_SUPPORT and -DLIBSA_PRINTF_WIDTH_SUPPORT.
Provided by tnozaki@ for my libsa debugging. Thanks!
2010-01-19 15:26:45 +00:00
joerg
5591cac167 Keep arc4_i and arc4_j synchronised after a rekeying. This prevents
accidentally ending up in a short ARC4 cycle.
2010-01-18 20:54:54 +00:00
joerg
56da4fa7b5 Move AMD64's bswap64 implementation from libc to src/common and share it
with the kernel.
2010-01-14 02:09:46 +00:00
drochner
b265b3ebf8 RFC783 says the ErrMsg sent with an ERROR packet needs to be
NUL-terminated
2010-01-13 10:56:17 +00:00
elad
251a5f50bc Don't abuse INSECURE for allowing exec() to load files not owned by uid 0.
Adjust references where this has been used.
2009-12-29 20:21:45 +00:00
uebayasi
e3ac1d9304 Build fix for the mips64 merge:
- If memset2.c is in ${SRCS}, exclude conflicting memset.c.
- If MD byte_swap_8.* is in ${SRCS}, exclude conflicting bswap64.c.
2009-12-14 12:18:14 +00:00
matt
e110dba586 Merge from matt-nb5-mips64 2009-12-14 00:47:10 +00:00
skrll
af4728306c Rename L_ADDR to L_PCB 2009-12-10 07:57:02 +00:00
skrll
b7b0345e3d Remove U_PCB as requested by rmind.
Same code before and after.
2009-12-01 09:06:16 +00:00
uebayasi
619d7bed3d Redo the previous inverted logic. Sort alphabetically. 2009-11-21 13:37:18 +00:00
uebayasi
dd7316895f Don't build quad support code on 64-bit platforms. 2009-11-21 13:30:23 +00:00
snj
febb7cce65 Drop 3rd and 4th clauses. Approved by gwr@ (copyright holder). 2009-10-21 23:12:09 +00:00
bouyer
6d07b400dc Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
2009-10-19 18:41:07 +00:00
pooka
5e1c61c660 Don't build spcopy for rumpkern. Fixes hp700 build failure pointed
out by nick.

XXX: spcopy should be in the main kernel instead of libkern in any case
2009-09-22 09:57:16 +00:00
he
78569b98fc Uh, move loadfile_aout.c in under the check for ${SA_USE_LOADFILE}
again, so that it's not unconditionally compiled, fixing the previous.
2009-08-25 14:10:54 +00:00
he
e408f74353 If we're on mips, don't build exec.c or loadfile_aout.c, since they
both deal with a.out format executables.
2009-08-21 21:12:02 +00:00
matt
7b2f3a5640 Change include of <sys/exec.h> to <sys/exec_aout.h> since these files want
the a.out stuff.
2009-08-16 13:26:16 +00:00
dsl
eaf64f1b6c Move that majority of the 'SRCS+= foo.c' into the main Makefile.libkern.
Any .S files added by the arch/*/Makefile.inc cause the .c file to
be excluded.
Specific exclusions added using NO_SRCS to match previous files.
At least sparc, sparc64, i386, amd64 and vax GENERIC still build.
(There is a fubar with the naming of the byte-swap files ...)
2009-08-14 19:23:53 +00:00
skrll
89ec5e3d9c Put back random.S. Hi dsl! 2009-08-12 22:49:37 +00:00
dsl
e46010532d Remove some .c files accidentally left on the .S lines 2009-08-12 21:24:57 +00:00
dsl
cfac8834d7 Split the lines that add .c to SRCS from those that add .S
No changes (apart from the order) intended.
2009-08-12 21:20:40 +00:00
dsl
6f5236b423 Use stuff from libc/Makefile to auto-remove .c files if a .S has been added.
Use it to dispose of tne .c files that were already only conditionally
added.
2009-08-12 21:18:42 +00:00
joerg
0578c2ad0f Move popcount et al to src/common and add popcount32/popcount64.
Requested by rmind@. MD should now override popcount32/popcount64 and
provide the aliases as fitting.
2009-07-21 14:55:32 +00:00
kiyohara
b922a542ab Fix little bit, and add a few files.
current status is to see following thread.
    http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html
2009-07-20 11:23:04 +00:00
roy
5f399f5c68 Use a function to add extra data to the vendor area so that data added
remains constant for both DISCOVER and REQUEST messages.
2009-07-10 12:16:31 +00:00
roy
4cd4e97af9 We should request the DHCP parameters we need. 2009-07-10 02:55:42 +00:00
he
b1946a6b32 Back out the addition of memset.c to the vax libkern, and instead do
as tsutsui@ suggested, and include <sys/param.h> in sha2.c instead.
On the vax, this causes <machine/macros.h> to be included, and it contains
that machine's memset() macro+inline.
2009-06-18 15:22:24 +00:00
he
78443215c7 Add memset.c, so that the references from sha2.c can be satisfied, and
so that the kernel and puffs applications can link again.
2009-06-18 07:56:04 +00:00
pgoyette
28469fc250 Implement snprintb_m(3) to provide multi-line bit/bit-field decode.
Discussed on tech-kern.
2009-05-13 02:50:31 +00:00
roy
235c0d4ef6 We should check for potential overflows.
ok: martin
2009-05-06 23:56:49 +00:00
skrll
8516d55745 Merge nick-hppapmap.
This is a port of the OpenBSD pmap and trap handling code to get us

        - Performance boost on some/all machines.
        - Well on the way to PA2.0 (in 32bit mode) support. Several
          machines probe hardware, but fail sometime after interrupts
          are enabled.

Other things changed / fixed on the branch are

        - update autoconf to use the OpenBSD code.
        - com @ dino is very close to being supported.
        - HPPA_REDZONE has been replaced with a working redzone which
          is enabled with DIAGNOSTIC.
        - UPAGES has been halved in size.
        - power(4) from OpenBSD to fix a few bugs.
        - updated list of modules from OpenBSD.
	- initial ports of uturn(4), astro(4) and elroy(4).
	- update some copyrights (remove advertising clause, etc.)

Thanks to mjf for some of the above, testing and listening.
2009-04-30 07:01:26 +00:00
lukem
94ec558cb9 fix sign-compare issue 2009-04-11 10:57:55 +00:00
he
c05f1c0f90 Make the function declaration the same for the big-endian case as
for the little-endian case, and consistent with the libkern.h
declaration.  Fixes build problem for at least hp700 and evbbarm-eb.
2009-03-26 22:18:14 +00:00
tls
3559a90485 Fix compilation error on 64-bit platforms. 2009-03-25 19:21:39 +00:00
tls
a34cd18b76 Fix build problems caused by crc32 addition to libkern. Also, this makes
the i386 bootblocks about 2K smaller than they were before we monkeyed
with crc32 at all.
2009-03-25 18:41:06 +00:00
darran
36ea3668b9 Fixes PR kern/41069 and PR kern/41070.
Extends the Opencrypto API to allow the destination buffer size to be
specified when its not the same size as the input buffer (i.e. for
operations like compress and decompress).
The crypto_op and crypt_n_op structures gain a u_int dst_len field.
The session_op structure gains a comp_alg field to specify a compression
algorithm.
Moved four ioctls to new ids; CIOCGSESSION, CIOCNGSESSION,  CIOCCRYPT,
and CIOCNCRYPTM.
Added four backward compatible ioctls; OCIOCGSESSION, OCIOCNGSESSION,
OCIOCCRYPT, and OCIOCNCRYPTM.

Backward compatibility is maintained in ocryptodev.h and ocryptodev.c which
implement the original ioctls and set dst_len and comp_alg to 0.

Adds user-space access to compression features.

Adds software gzip support (CRYPTO_GZIP_COMP).

Adds the fast version of crc32 from zlib to libkern. This should be generally
useful and provide a place to start normalizing the various crc32 routines
in the kernel.  The crc32 routine is used in this patch to support GZIP.

With input and support from tls@NetBSD.org.
2009-03-25 01:26:12 +00:00
tsutsui
9c6c3c68dd Don't use gcc's __builtin_*() functions #if defined(_STANDALONE)
because they could be larger than __OPTIMIZE_SIZE__'ed libsa ones and
__builtin_memcpy() on vax rejects NULL (i.e. copying from/to address 0x0).

No particular comments on tech-toolchain.

Tested on alpha, arc, cobalt, hp300, i386, landisk, macppc, news68k, sgimips,
sparc, sparc64, sun3, and vax (on simh).
2009-03-23 13:41:00 +00:00
tsutsui
9d27968892 Allow MD standalone Makefiles overriding MI libsa settings
by SA_EXTRADIR variable passed via SAMISCMAKEFLAGS.
2009-03-20 11:31:30 +00:00
tsutsui
3c7a0b7662 Revert previous. MI libsa doesn't provide bcmp(). 2009-03-19 10:20:54 +00:00
he
3b9146b27b Add a prototype for the bcmp() function as well. 2009-03-19 08:38:12 +00:00
cegger
c363a9cb62 bzero -> memset 2009-03-18 16:00:08 +00:00
tsutsui
d0b9e6c924 - remove bcmp(9), bcopy(9), and bzero(9) from libkern since <sys/systm.h> has
macro which replace them with mem*() functions in #ifdef _KERNEL as noted
  in man pages
- move declarations of bcopy(3) and bzero(3) into <lib/libsa/stand.h>
  since they are still in libsa for some MD standalone sources
  (I guess all bcmp(3) in standalone sources have been replaced with memcmp(3)
   but they should be replaced with memcmp() anyway)
2009-03-18 12:25:06 +00:00
cegger
248cdce283 ansify function definitions 2009-03-15 21:33:51 +00:00
dsl
82357f6d42 ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
2009-03-14 21:04:01 +00:00
dsl
454af1c0e8 Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
2009-03-14 15:35:58 +00:00
dsl
02cdf4d2c8 Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
2009-03-14 14:45:51 +00:00
cube
9f700fdcd2 Follow the syntax of file conditionals for makeoptions, using minor case
versions of options.
2009-03-13 18:25:58 +00:00
tsutsui
82127a2dd2 Use EXT2_DINODE_SIZE() to get offset of inode, not struct ext2fs_dinode array. 2009-03-02 10:25:00 +00:00
christos
6eda90fc68 catch up with variable inode size. 2009-03-01 19:37:16 +00:00
isaki
80a3550743 Revert previous one. It has already fixed in net.h,v 1.25. 2009-01-31 06:22:46 +00:00
isaki
28468b1f07 Fix build error. Declare getsecs() before (re-)defining it. 2009-01-31 04:11:28 +00:00
he
fddc3457b2 Change the use of formally undocumented features, which have now been
made to fail.  Specifically, change
.ifdef(SYMBOL) -> .ifdef SYMBOL or .if defined(SYMBOL),
and corresponding for .ifndef.

Also correct one error in lib/libm/Makefile (.ifdef (${MKCOMPLEX} != "no")?!?).
2009-01-18 20:42:11 +00:00
tsutsui
4459b5fdab I really hate silly hacks inside #ifndef _STANDALONE in libsa sources... 2009-01-18 02:59:02 +00:00
tsutsui
3f38114d96 Remove __P(). 2009-01-17 14:00:36 +00:00
tsutsui
69cf32a782 Replace time_t values in libsa sources with the following two types
to avoid unnecessary 64 bit ops which would make binaries larger:

satime_t (currently unsigned int):
 numbers in seconds returned by the machine dependent getsecs() function
 which are used to measure relative time

saseconds_t (currently int):
 numbers in seconds used to specify timeout to network drivers

Per discussion on current-users.
2009-01-12 11:32:43 +00:00
uwe
533bbdff7e These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden".  I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
2009-01-07 22:15:18 +00:00