Commit Graph

491 Commits

Author SHA1 Message Date
matt
2c6d199d35 Switch shark from intrcnt to evcnt 2007-02-20 01:51:16 +00:00
matt
f2151241de Move softintr_init from irq_init to cpu_configure. 2007-02-19 21:38:37 +00:00
matt
c77b6c330d Add IPL_SOFT 2007-02-18 21:04:21 +00:00
macallan
e8e145b6d9 fix typo - softintr.c is in arch/arm/arm/ not arch/arm/ 2007-02-18 08:10:41 +00:00
matt
981ae6645d Don't export spl_smasks or soft_interrupts. They are local to intr.c
Make sure that softintr_init() is called when needed.
Assume __HAVE_GENERIC_SOFT_INTERRUPTS is defined (since newlock2 requires it).
2007-02-18 07:48:20 +00:00
matt
37f7079751 Call softintr_init() 2007-02-18 07:20:40 +00:00
matt
6aa56b9197 Compile in arm/arm/softintr.c 2007-02-18 07:17:57 +00:00
matt
39cadbf356 Add __HAVE_GENERIC_SOFT_INTERRUPTS support for shark. This was done by
extenting the current arm generic intrs to support softintrs.  Add
IPL_SOFTCLOCK, IPL_SOFTNET, IPL_SOFTSERIAL.
2007-02-18 07:13:17 +00:00
ad
b07ec3fc38 Merge newlock2 to head. 2007-02-09 21:55:00 +00:00
macallan
2b8bf5f8d1 have OF re-initialize the console before calling OF_exit() so we actually
end up in something usable
2007-01-25 02:20:23 +00:00
hubertf
142c2a33ba Remove duplicate #includes, patch contributed in private mail
by Slava Semushin <slava.semushin@gmail.com>.

To verify that no nasty side effects of duplicate includes (or their
removal) have an effect here, I've compiled an i386/ALL kernel with
and without the patch, and the only difference in the resulting .o
files was in shifted line numbers in some assert() calls.
The comparison of the .o files was based on the output of "objdump -D".

Thanks to martin@ for the input on testing.
2007-01-24 13:08:11 +00:00
macallan
ed57b01256 add bus_space_*_stream() methods 2007-01-21 23:19:57 +00:00
yamt
8bf7662829 merge yamt-splraiseipl branch.
- finish implementing splraiseipl (and makeiplcookie).
	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
	- complete workqueue(9) and fix its ipl problem, which is reported
	  to cause audio skipping.
	- fix netbt (at least compilation problems) for some ports.
	- fix PR/33218.
2006-12-21 15:55:21 +00:00
macallan
793de63a0f add igsfb at ofbus 2006-12-07 03:11:15 +00:00
macallan
0e7f627c30 add glue for igsfb at ofbus 2006-12-07 03:10:14 +00:00
macallan
5d88b0aa20 make /dev/openfirm work in GENERIC again 2006-12-03 04:13:55 +00:00
wiz
6919c6578c s/independant/independent/, from Zafer. 2006-11-24 22:04:21 +00:00
christos
1665d5e960 fix spelling of accommodate; from Zapher. 2006-11-24 19:46:58 +00:00
jmmv
7a13fe4abf Remove tmpfs's experimental status. OK'ed by core@. 2006-11-11 18:47:08 +00:00
bjh21
ed5db5831e boot_file is not used by generic NetBSD/arm code, and its type varies by
MACHINE.  Thus, move it out of <arm/bootconfig.h> and put it into
<machine/bootconfig.h> on those MACHINEs (cats, hpcarm, and shark) where
it's used outside the file in which it's defined.
2006-10-26 23:31:47 +00:00
bjh21
3191d2a481 Change the type of initarm() on OFW-based ARM systems to match other non-hpcarm
ports.  This seems sensible since all of them call it from the same locore.S.
This makes NetBSD/shark GENERIC compile.
2006-10-26 22:49:36 +00:00
bjh21
84e47229be parse_mi_bootargs() is declared in <arm/arm32/machdep.h>, so there's no need
to declare it here too.
2006-10-24 21:03:13 +00:00
chs
e8295642bd remove MALLOC_NOINLINE, it doesn't do anything anymore. 2006-10-02 03:28:29 +00:00
elad
e8373398dc Adapt MD code to KAUTH_DEVICE_TTY_OPEN. Patch from Matt Fleming, thanks! 2006-10-01 18:56:21 +00:00
manu
f309b668fd - Document COMPAT_15 as doing nothing
- Add COMPAT_15 to all the kernel that had COMPAT_14, for the sake of coherency
- Remove the only occurences of #ifdef COMPAT_15 in the tree: for the ARM
ports, COMPAT_15 was always used in conjunction with EXEC_AOUT. Only EXEC_AOUT
matters here.

This address kern/18407
2006-09-27 21:42:04 +00:00
gdamore
cf407be292 Convert shark and ofppc to new common ofrtc and MI todr code. Tested
on shark.  Ok christos@, martin@.
2006-09-13 07:14:35 +00:00
gdamore
40774842f0 Convert shark to timecounters. Tested by numerous folks, ok christos@,
martin@.
2006-09-13 07:13:03 +00:00
uebayasi
30636ef7d5 Resolve conflict (extern struct devsw devsw[] vs. static struct devsw devsw[]). 2006-09-13 06:47:28 +00:00
gdamore
39d7c2b083 Convert sequoia led's to getmicrotime() instead
of a hard coded reference to time.  This is necessary to
support timecountering.  Tested by pooka@
2006-09-12 17:50:53 +00:00
gdamore
01beb29b30 ANSIfy & KNF. 2006-09-12 17:07:14 +00:00
matt
b9525730ee deal with 'bool' definitions 2006-09-11 03:37:12 +00:00
tsutsui
663ffba751 Add __insn_barrier() to avoid too aggressive optimization by gcc4.
GENERIC compiled by gcc4 now works on my FUNAI's DNARD.
2006-09-05 15:50:37 +00:00
bjh21
e10108c7f2 Nothing in the kernel now tests __HAVE_NWSCONS, so stop defining it everywhere. 2006-09-03 13:51:23 +00:00
christos
e0df1e4c51 PR/34283: Gene ENonymous: Add IPFILTER_LOOKUP to the default kernel options
Also remove CCITT,NS,NIP
2006-08-26 20:26:43 +00:00
tsutsui
6ff205ce76 Remove obsolete #options VERIFIED_EXEC, found by grep(1). 2006-08-26 07:59:21 +00:00
christos
b300b74469 Disable SYSTRACE by default on all kernels (discussed with core) 2006-08-12 15:29:52 +00:00
drochner
84f50d1b92 don't install <machine/db_machdep.h>, this is kernel only 2006-07-26 19:54:56 +00:00
ad
f474dceb13 Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
liamjfoy
aeee5deab9 Add CARP to GENERIC kernel configs. CARP is not enabled by default.
ok: christos
2006-06-28 15:19:27 +00:00
elad
8ccb6c9341 integrate kauth. 2006-05-14 21:55:09 +00:00
yamt
ccc0bd2ab6 remove irqblock[] as no one uses it. reviewed by Ben Harris. 2006-05-11 12:05:37 +00:00
drochner
1168954c68 adjust comments for the new location of wskbdmap_mfii.c,
addresses PR kern/33290 by henry nelson
2006-04-19 10:31:44 +00:00
jmmv
aec18036fd Remove the getwschar and putwschar accessops from wsdisplay drivers as
requested by uwe@.  These were wrong because they were receiving an
emulcookie yet they were accessops (thus having to receive an accesscookie).
Instead, just handle the WSDISPLAYIO_{GET,PUT}WSCHAR ioctls from the
driver's ioctl accessop.

As this reduces the amount of code needed to handle these operations to
two small functions in each driver, remove the WSDISPLAY_CHARFUNCS kernel
option.

Reviewed by, at least, uwe@ and macallan@.  No objections in tech-kern@.
2006-04-15 17:48:23 +00:00
thorpej
2be6494fc9 Use device_cfdata(). 2006-03-29 04:16:44 +00:00
pavel
dc1372c547 Add stf to all kernel configs which have INET6 and gif, except the INSTALL
ones and those for specific machines of developers. PR 32304.

OK'ed by rpaulo.

N.B. stf is a cloning device, so it still must be enabled by
"ifconfig stf0 create".
2006-03-28 20:58:39 +00:00
lukem
a1f606d3fd Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
2006-03-08 23:46:22 +00:00
he
097212d1dd Remove another instance of the macro triplet SET/CLR/ISSET, now
found in <sys/types.h>.  Also removed ISCLR, and transformed the
single use to !ISSET.
2006-03-07 22:12:05 +00:00
christos
b2927ed049 remove unused ISCLR macro. 2006-03-07 19:15:50 +00:00
he
93e5acd417 Removed another instance of the macro triplet SET/CLR/ISSET, now found
in <sys/types.h>.  An ISCLR macro remains here for now.
2006-03-07 16:33:39 +00:00
thorpej
132ce1f07f Use device_is_a() 2006-02-26 05:24:52 +00:00
wiz
5d1e8b2745 Fix some typos. 2006-02-25 02:28:55 +00:00
thorpej
458b3e43f7 Use device_parent(). 2006-02-23 05:37:46 +00:00
cube
6ff13154dd Remove 'count' argument for pseudo-devices that ignore it
(vnd, bpfilter, ppp, gif, gre, tun, sl, strip, faith, stf).
2006-02-05 05:01:48 +00:00
rpaulo
23b8c23173 bpfilter doesn't accept count anymore. 2006-02-04 03:33:20 +00:00
reinoud
a92fdbbc53 Add commented out UDF file-system entry in all GENERIC configurations. 2006-02-02 21:32:08 +00:00
uwe
e12e03530c dealloc is not "only for consistency check", so remove that comment. 2006-01-27 02:26:16 +00:00
uwe
e8574708b0 WARNS=4 2006-01-27 01:57:29 +00:00
uwe
953e50f4f1 Fix logic botch/typo in prom2boot. 2006-01-27 01:55:34 +00:00
uwe
0055f82067 Pacify gcc -Wuninitialized.
Use NULL instread of (struct fl *)0 - especically as this file doesn't
define struct fl.

XXX: there are more references in the comments to the struct fl
inherited from libsa/alloc.c.
2006-01-27 01:03:10 +00:00
uwe
feedf5e952 Add -ffreestanding to CFLAGS directly. 2006-01-26 23:26:20 +00:00
uwe
5431c4eda4 Don't try to create machine and arm symlinks if the target is obj,
clean or cleandir.
2006-01-25 23:43:42 +00:00
christos
606bb2caed free -> dealloc
unsigned -> size_t for alloc/dealloc
2006-01-25 18:28:25 +00:00
perry
2d65de2479 bare asm -> __asm 2005-12-24 22:45:33 +00:00
perry
5f1c88d70d Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:06:46 +00:00
thorpej
c97c3de6e9 Remove the tablet line discipline. 2005-12-20 05:35:27 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
elad
4591e5acfd Add (commented out) Veriexec options and pseudo-device to GENERIC kernels,
and remove the i386 GENERIC_VERIEXEC config.
2005-12-09 23:34:01 +00:00
yamt
6bba73019a use VM_PAGE_TO_PHYS macro. 2005-12-08 22:41:44 +00:00
tsutsui
2a32b6081e Remove obsolete options VNODE_OP_NOINLINE. 2005-12-07 12:40:46 +00:00
tsutsui
ff9b47d69e Adjust comments for options FFS_NO_SNAPSHOT.
XXX: This option should be mentioned in options(4).
2005-12-07 09:10:11 +00:00
dbj
8000972bbe . Have dbsym explicitly suggest increasing SYMTAB_SPACE when
an overflow occurs.
   . Make this error a fatal build time error
   . Move the support for dbsym into the MI Makefile.kern.inc,
     conditional upon the SYMTAB_SPACE option being defined in
     the kernel config file.
2005-11-24 12:54:29 +00:00
chs
59fddeceaa turn off DEBUG and DIAGNOSTIC in GENERIC kernels so that they
are compatible with the LKMs that are part of the release.
2005-11-03 16:48:29 +00:00
yamt
d597202302 make VMSWAP optional again. 2005-09-17 14:38:38 +00:00
yamt
7e71f567e4 include "conf/std". 2005-09-17 09:44:05 +00:00
jmmv
ec93365612 Initial addition of tmpfs, an efficient memory file-system. This project
was developed as part of Google's Summer of Code 2005 program.  This
change adds the kernel code, the mount_tmpfs utility, a regression test
suite and does all other related changes to integrate these.

The file-system is still *experimental*.  Therefore, it is disabled by
default in all kernels.  However, as typically done, a commented-out
entry is added in them to ease its setup.

Note that I haven't commited the required mountd(8) changes to be able
to export tmpfs file-systems because NFS support is still very unstable
and because, before enabling it, I'd like to do some other changes.

OK'ed by my project mentor, William Studenmund (wrstuden@).
2005-09-10 19:20:48 +00:00
kleink
aece7a90fd Change the driver open function's conditional for overriding exclusive tty
use from checking the proc's uid to suser(9), and account for the use of
privileges.  Noted by David Holland in PR kern/31126.
2005-09-06 21:40:37 +00:00
christos
93c362d7ef Enable ptyfs by default on the non-install and non small/tiny/ramdisk kernels 2005-08-19 05:19:49 +00:00
christos
758a209d23 64 bit inode changes. 2005-08-19 02:03:49 +00:00
yamt
38ca5312d2 revert "defflag VMSWAP" changes for now.
there seems to be far more people who don't want to edit
their kernel config files than i thought.
2005-07-31 04:04:30 +00:00
yamt
558fded29a add "options VMSWAP" to non INSTALL kernels. 2005-07-30 06:35:34 +00:00
yamt
1d0891101c defflag VMSWAP. 2005-07-30 06:33:33 +00:00
hubertf
673730506c Add support for reading cloop2 compressed filesystem image,
enable by putting VND_COMPRESSION into kernel config file.
Written by Cliff Wright, polished up slightly by me.
2005-07-17 00:08:27 +00:00
tron
04b9c3437f Add (commented out) IPSEC_NAT_T option. 2005-07-07 17:05:46 +00:00
rpaulo
64fd052c74 Add file-system PTYFS (commented out) so that people know its existence.
Ok'ed by Christos Zoulas and Hubert Feyrer.
2005-06-25 12:05:15 +00:00
junyoung
17670568fe Use FS_OPS() macro. 2005-06-23 19:44:00 +00:00
junyoung
600b956be0 Remove trailing spaces. 2005-06-22 16:35:58 +00:00
dyoung
a37289db57 Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/.  That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such.  I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.
2005-06-12 19:46:15 +00:00
scw
7e5638e54e Appease -Wshadow and -Wcast-qual 2005-06-03 13:14:09 +00:00
scw
861b1ff2f6 Appease -Wshadow 2005-06-03 13:02:35 +00:00
scw
9464c4ee5f Include <arm/bootconfig.h> to get the get_bootconf_option() prototype and
associated definitions, instead of rolling our own.
2005-06-03 12:48:25 +00:00
christos
7cdea212c0 No 0x in front of %p... 2005-05-22 15:54:45 +00:00
jdolecek
4d515665c5 assign major for nsmb(4) 2005-05-10 00:02:35 +00:00
tsutsui
a9a45cb796 Fix __KERNEL_RCSID. 2005-03-18 12:34:17 +00:00
simonb
38c9d4c236 Remove unused header file. 2005-03-15 13:19:41 +00:00
tsutsui
58bc3dfe63 Fall back to comconsole when vga or pccons console cnprobe/cnattach fails
even if options COMCONSOLE is not specified.
2005-02-27 18:29:43 +00:00
tsutsui
f05862169e cnattach functions should return zero on success, non-zero on failure. 2005-02-27 18:24:49 +00:00
simonb
ff8f0b23c9 Add COMPAT_20 (and COMPAT_16 in some cases) to kernel config files
that didn't have those options but had other earlier compat options.
2005-02-25 13:46:48 +00:00
christos
e98083ea54 - remove MEMORY_DISK_HOOKS
- add LKM
- increase SYMTAB_SPACE
2005-02-21 20:36:37 +00:00
christos
e42df4bc1c Add missing wsfont. 2005-02-21 20:35:13 +00:00
dsl
4822cbaae2 Invert FFS_SNAPSHOT to FFS_NO_SNAPSHOT 2005-02-18 21:05:50 +00:00
drochner
0717077eea The joystick driver is using mi timing code for many months.
Noone complained, so we can remove the unused md versions.
2005-02-18 15:39:17 +00:00
dsl
05e2f6ebdb Add 'option FFS_SNAPSHOT' to most of the config files.
Commented out for kernels that appear to hace space constraints.
2005-02-11 08:25:53 +00:00
simonb
3cebd9325e White space nit- don't put a space before/after increment/decrement
operators.
2005-02-11 06:21:21 +00:00
hannken
d5fbb6936f Add file system snapshots to kernel configs.
- Ffs internal snapshots get compiled in unconditionally.

- File system snapshot device fss(4) added to all kernel configs that
  have a disk.  Device is commented out on all non-GENERIC kernels.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
2005-01-31 16:54:32 +00:00
rumble
de81c2c878 Sprinkle options UFS_DIRHASH on GENERIC kernels. It's presently
commented out and labeled experimental pending further review and
testing.
2005-01-28 03:19:49 +00:00
tsutsui
18cc5c6cd5 Comment out options XSERVER, which was required by old pccons. 2005-01-16 14:58:42 +00:00
tsutsui
8d65a2e17f - Switch to wscons(4) with MI vga(4), pckbc(4) and pms(4).
- Reorganize console initialization code like i386 rather than cninit().
Note old pccons/opms and ofcons support still works.

XXX Xserver is not tested because XF86_4 doesn't have support
XXX for IGS CyberPro2010 on shark. (yet?)
2005-01-09 15:39:59 +00:00
tsutsui
7da0e84338 - Adapt to vga_common_attach() API changes.
- Add more VGA initialization code to vga_ofbus_cnattach() from pccons.c.
- Export vga_ofbus_cnattach() prototype for consinit() ops.
2005-01-09 15:29:27 +00:00
tsutsui
01c812cc7b Add bus_space_copy_region_2() op, which is required by MI vga(4),
from sys/arch/arm/arm/bus_space_asm_generic.S.

XXX: isa_io_asm.S and bus_space_asm_generic.S is mostly identical.
2005-01-09 15:26:19 +00:00
tsutsui
cac3513fa5 Purge vm_offset_t. 2005-01-05 10:25:43 +00:00
tsutsui
41e8037c12 Use MI <dev/ic/pcdisplay.h>. 2005-01-05 09:17:36 +00:00
tsutsui
f97d50b3cf 'device-major ofcons' is required by device ofcons, not ofwgencfg. 2005-01-05 09:15:19 +00:00
tsutsui
ccf08b263e - Remove attribute shark, which is always defined.
- arch/shark/ofw/ofisapc.c is required by ofisapc, not pc.
2005-01-05 09:13:29 +00:00
tsutsui
f8d82b0fa1 options<space><tab> 2005-01-05 09:06:33 +00:00
tsutsui
e2ccb8e626 Bump size of SYMTAB_SPACE. 2005-01-05 09:05:39 +00:00
jmc
0c600e6739 Add a missing include for locators.h 2004-12-15 03:56:20 +00:00
chs
267af995b7 use the generated macros in locators.h rather than hard-coded numbers
to index the cf_loc[] array.  reviewed by allen briggs.
2004-12-14 02:32:02 +00:00
christos
30fc143afa Add COMPAT_BSDPTY to the rest of the config files. 2004-11-10 17:54:02 +00:00
thorpej
dc2f2fbe74 Centralize the declaration of booted_device and booted_partition. 2004-10-23 17:07:37 +00:00
drochner
a8f458743f Replace the last spurious ISACF_IRQ_DEFAULT. 2004-09-20 17:31:57 +00:00
drochner
96f4400c0c remove an occurence of ISACF_DRQ_DEFAULT where it doesn't
belong
(I didn't find where this piece of code is made use of,
likely stale stuff.)
found by Havard Eidnes
2004-09-20 16:57:27 +00:00
chs
cbc396ce30 work around a binutils bug where converting ELF kernels to a.out with objcopy
produces corrupted binaries when the link_set_* sections extend into another
page after the end of the .text section by using a generated an ldscript that
puts all the link_set_* data into the .text section in the first place.
2004-09-13 09:39:40 +00:00
manu
6e3c639957 IPv4 PIM support, based on a submission from Pavlin Radoslavov posted on
tech-net@
2004-09-04 23:29:44 +00:00
thorpej
d1e0f4a2a0 Add openfirm. 2004-08-29 17:40:12 +00:00
reinoud
b4f746a195 Increase space reserved for symbol space. As of the kernel i build it
needed at least a 255344 bytes while 242000 was reserved. Bumped it a few
kb higher to reduce symbol table fill too soon again.
2004-08-25 12:24:48 +00:00
drochner
fd293d10fd remove some typecasts to "cfmatch_t" which are obviously relicts from
__BROKEN_INDIRECT_CONFIG times
2004-07-29 18:39:00 +00:00
atatat
f68a9f1ff2 Add "options SYSCTL_INCLUDE_DESCR" to a lot of configs, but commented
out in most of them.
2004-07-15 03:53:44 +00:00
drochner
af0dfbe584 don't need md timing functions for joystick anymore 2004-07-08 22:07:47 +00:00
drochner
12abfacf0b just include <sys/joystick.h> 2004-07-02 17:15:10 +00:00
christos
45879fd71c - full ansi prototypes
- turn WARNS=3 on
2004-06-30 15:43:57 +00:00
abs
bd8eb3b5ed Add (commented out) ALTQ options to all GENERIC-like files 2004-06-26 07:32:05 +00:00
christos
fbed76869e add procfs, fdesc and nfs server. All other generics have it. 2004-06-25 02:12:59 +00:00
christos
f385b3f45a add posix semaphores and compat-2.0 2004-06-25 02:06:08 +00:00
itojun
596aec9a47 have pf and pflog pseudo-device (commented out).
reviewed by matt, perry, christos
2004-06-22 14:09:49 +00:00
christos
c22e4ed8cd ptm is now mandatory, depends on pty, and can be disabled with -DNO_DEV_PTM 2004-06-18 15:02:29 +00:00
christos
0399e839cf Add pseudo-device ptm on all the generic flavored kernels. 2004-06-16 15:07:39 +00:00
wiz
1249084227 "panicking" needs a k. 2004-05-16 15:44:10 +00:00
kleink
7b3b647647 Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00
matt
1b0d774789 Up symtab space. 2004-04-10 07:41:06 +00:00
matt
311f70b5ad Add COMPAT_LINUX and enable NULLFS. 2004-03-13 18:51:43 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
jdolecek
2d609e233b need lpt_ofisa_machdep.c also for atppc attachment 2004-02-10 16:43:22 +00:00
thorpej
08227d36cb No need to include wdvar.h anymore. 2003-12-14 05:15:53 +00:00
martin
8198b105e1 Bump SYMTAB_SPACE, we need more nowadays. 2003-12-11 08:42:20 +00:00
jmc
695a2a2f9f Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
2003-12-10 02:04:00 +00:00
martin
2ceba4344c Fix KERN_DEBUG format string <-> parameter mismatch. 2003-11-07 18:49:29 +00:00
scw
754f153b0d Use the alignment fault enable/restore macroes in irq_entry. 2003-11-05 12:03:58 +00:00
scw
ca8c391c95 s/bcopy/memmove/
The kernel's bcopy (actually a wrapper around memcpy) is not guaranteed to
handle overlapping regions, even though the old ARM version did.

This fixes a problem where the kernel reported more available memory
than actually existed.
2003-11-05 10:09:10 +00:00
martin
43b448a711 Redo previous so that it actually works - the OF node still is called "wdc"
but it is not the parent but the grandparent of the disk device now.
2003-11-02 10:13:23 +00:00
lukem
f85d2d1c14 Use ${HOST_SH} instead of `sh'.
If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
2003-10-26 07:25:33 +00:00
is
94b6569a57 wd and atapibus are at atabus now, not directly at wdc.
Change requested by Martin Husemann.
2003-10-24 10:57:16 +00:00
jdolecek
7b569bb154 g/c all SCSI-only device majors - shark doesn't have SCSI and isn't
expandable
pointed out by Matthew Green
2003-10-24 10:29:12 +00:00
jdolecek
821f341675 add necessary majors for miscellaneous devices, such as missing
wscons/scsi/isdn devices
2003-10-24 08:18:36 +00:00
agc
25cf475b83 Another NULL vs. 0 correction. 2003-10-22 10:04:43 +00:00
agc
0192c15f19 Don't use NULL when 0 is needed. 2003-10-22 09:43:07 +00:00
agc
f3d647fc2c Don't use NULL for integer values. 2003-10-22 09:03:40 +00:00
jdolecek
ef5bb330f5 reassing majors for crypto and pf to use the newly defined MI major
range
2003-10-10 22:42:39 +00:00
jdolecek
4e915c9ccd update the comment - the space for machine-dependant majors
is reduced to 0-143
follows discussion on tech-kern
2003-10-10 21:21:25 +00:00
bouyer
a8b5ae01dc Add atabus. 2003-10-08 11:14:36 +00:00
lukem
1c33b4e6a4 Overhaul MBR handling (part 1):
<sys/bootblock.h>:
    *	Added definitions for the Master Boot Record (MBR) used by
	a variety of systems (primarily i386), including the format
	of the BIOS Parameter Block (BPB).
	This information was cribbed from a variety of sources
	including <sys/disklabel_mbr.h> which this is a superset of.

	As part of this, some data structure elements and #defines
	were renamed to be more "namespace friendly" and consistent
	with other bootblocks and MBR documentation.
	Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
    *	Deprecated in favor of <sys/bootblock.h> (the latter is more
	"host tool" friendly).

amd64 & i386:
    *	Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
	be consistent with the naming convention of the msdosfs tools.

    *	Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
	and it's confusing to have two functionally equivalent bootblocks,
	especially given that "ufs" has multiple meanings (it could be
	a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

    *	Rework pbr.S (the first sector of bootxx_*):
	    +	Ensure that BPB (bytes 11..89) and the partition table
		(bytes 446..509) do not contain code.
	    +	Add support for booting from FAT partitions if BOOT_FROM_FAT
		is defined.  (Only set for bootxx_msdos).
	    +	Remove "dummy" partition 3; if people want to installboot(8)
		these to the start of the disk they can use fdisk(8) to
		create a real MBR partition table...
	    +	Compile with TERSE_ERROR so it fits because of the above.
		Whilst this is less user friendly, I feel it's important
		to have a valid partition table and BPB in the MBR/PBR.

    *	Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
	with other platforms.

    *	Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
    	we can boot off FAT partitions.

    *	Crank version of /usr/mdec/boot to 3.1, and fix some of the other
	entries in the version file.

installboot(8) (i386):
    *	Read the existing MBR of the filesystem and retain the BIOS
    	Parameter Block (BPB) in bytes 11..89 and the MBR partition
	table in bytes 446..509.  (Previously installboot(8) would
	trash those two sections of the MBR.)

mbrlabel(8):
    *	Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
	to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
2003-10-08 04:25:43 +00:00
simonb
f25f172d64 Use -ffreestanding.
Define LIBC as nothing, we don't need to link against it.
2003-10-08 01:37:35 +00:00
jdolecek
e6286b949a Add some framework for MI assignment of device majors - add sys/dev/majors
which is automatically included during kernel config, and add comments
to individual machine-dependant majors.* files to assign new MI majors
in MI file.

Range 0-191 is reserved for machine-specific assignments, range
192+ are MI assignments.

Follows recent discussion on tech-kern@
2003-10-05 08:04:24 +00:00
matt
99c08a490f For GCC 3.3.1, need to remove .comment too. 2003-09-21 00:19:31 +00:00
chris
cfb7a98211 Add COMPAT_16 to most arm based kernels. Mainly in preperation for doing
SA_SIGINFO work.
2003-09-13 13:30:01 +00:00
itojun
4440262659 create /dev/crypto 2003-08-22 05:06:22 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
kristerw
2e750373ec Add a missing NULL _cookie to the arm32_bus_dma_tag initialization. 2003-08-01 22:43:27 +00:00
itojun
3f14c71f75 reserve cdev major # for PF. ok'ed by technical-exec 2003-07-27 14:17:57 +00:00
lukem
ed51729135 __KERNEL_RCSID() 2003-07-15 02:54:31 +00:00
uwe
a8c0780b08 Use CPUFLAGS instead of COPTS to pass -march=armv4 -mtune=strongarm. 2003-06-25 01:07:55 +00:00
martin
d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
thorpej
452a8fdae2 Rename IPL_IMP -> IPL_VM. 2003-06-16 20:00:56 +00:00
thorpej
0eff671820 Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
2003-06-14 17:01:06 +00:00
thorpej
181911c6db Don't need ARM32_PMAP_NEW option any more. 2003-05-22 05:52:18 +00:00
thorpej
d5bcde54a7 Move KERNEL_VM_SIZE into the C files where its used. 2003-05-22 05:47:04 +00:00
thorpej
1963a8521c Use virtual_avail and virtual_end to compute the size of the available
kernel VM space for VM_MAX_KERNEL_BUF, and move the definition into
generic ARM code.
2003-05-22 05:25:48 +00:00
thorpej
361d0454ce Move KERNEL_VM_BASE inside where it is used (it won't be there for long). 2003-05-21 22:48:20 +00:00
simonb
62f8f7ced0 Remove definitions for sp,lr,pc. Stops duplicate warnings from the
assembler, identical code generated before and after.
2003-05-20 04:44:52 +00:00
fvdl
3c237ca4db ISA_DMA_BOUNCE_THRESHOLD was moved to dev/isa/isareg.h 2003-05-08 11:04:38 +00:00
he
319f2b1f1a Back out the previous, removing the wsfont pseudo-device added as part
of resolving PR#18388.  The shark port isn't quite wscons-ready yet.

OK'ed by thorpej.
2003-05-07 14:46:08 +00:00
gmcgarry
9c89a57de0 Add wsfont. Addresses PR#18388. 2003-05-04 01:27:53 +00:00
thorpej
bbba90a2fb Don't expose KERNEL_TEXT_BASE outside of board-specific code. This gives
individual board start-up code more flexibility about where the kernel
starts in the kernel address space.
2003-05-03 18:25:28 +00:00
wiz
1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
ragge
a2dfcf291d Fix wrong ifdef's (introduced by me when ksyms:ing). 2003-05-03 12:45:16 +00:00
thorpej
aae7e372b7 Reduce differences between ARM32_NEW_VM_LAYOUT and not; always pass
the start and end of the kernel managed virtual address space to
pmap_bootstrap() in the new pmap.
2003-05-03 03:49:03 +00:00
thorpej
1dff12252d Remove old pmap support for platforms which have fully switched over. 2003-05-03 03:29:06 +00:00
thorpej
dd8a20afe7 Make the new pmap standard on the shark. 2003-05-03 00:47:04 +00:00
thorpej
4eeee795e8 Eliminate PTE_BASE and the PT-PT completely in the ARM32_PMAP_NEW case.
Also in the ARM32_PMAP_NEW case, reclaim the USPACE-bytes of wasted space
at the top of the user address that hasn't been needed for a very very
long time.
2003-05-02 23:22:33 +00:00
thorpej
7de2c299a2 Don't define APTE_BASE if ARM32_PMAP_NEW is defined; the new pmap
doesn't use it.
2003-04-28 01:34:28 +00:00
ragge
d8c8fa8111 Add pseudo-device ksyms. 2003-04-26 14:10:04 +00:00
ragge
69a66687f8 Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
2003-04-26 11:05:05 +00:00
ragge
766d04f56a Add ksyms device major. 2003-04-25 21:10:46 +00:00
thorpej
bbef46a7e9 Some ARM32_PMAP_NEW-related cleanup:
* Define a new "MMU type", ARM_MMU_SA1.  While the SA-1's MMU is basically
  compatible with the generic, the SA-1 cache does not have a write-through
  mode, and it is useful to know have an indication of this.
* Add a new PMAP_NEEDS_PTE_SYNC indicator, and try to evaluate it at
  compile time.  We evaluate it like so:
  - If SA-1-style MMU is the only type configured -> 1
  - If SA-1-style MMU is not configured -> 0
  - Otherwise, defer to a run-time variable.
  If PMAP_NEEDS_PTE_SYNC might evaluate to true (SA-1 only or run-time
  check), then we also define PMAP_INCLUDE_PTE_SYNC so that e.g. assembly
  code can include the necessary run-time support.  PMAP_INCLUDE_PTE_SYNC
  largely replaces the ARM32_PMAP_NEEDS_PTE_SYNC manual setting Steve
  included with the original new pmap.
* In the new pmap, make pmap_pte_init_generic() check to see if the CPU
  has a write-back cache.  If so, init the PT cache mode to C=1,B=0 to get
  write-through mode.  Otherwise, init the PT cache mode to C=1,B=1.
* Add a new pmap_pte_init_arm8().  Old pmap, same as generic.  New pmap,
  sets page table cacheability to 0 (ARM8 has a write-back cache, but
  flushing it is quite expensive).
* In the new pmap, make pmap_pte_init_arm9() reset the PT cache mode to
  C=1,B=0, since the write-back check in generic gets it wrong for ARM9,
  since we use write-through mode all the time on ARM9 right now.  (What
  this really tells me is that the test for write-through cache is less
  than perfect, but we can fix that later.)
* Add a new pmap_pte_init_sa1().  Old pmap, same as generic.  New pmap,
  does generic initialization, then resets page table cache mode to
  C=1,B=1, since C=1,B=0 does not produce write-through on the SA-1.
2003-04-22 00:24:48 +00:00
scw
b84e9438dd Enable ARM32_PMAP_NEW on NetBSD/shark. 2003-04-18 11:11:51 +00:00
thorpej
cc2c493bc4 Use PAGE_SIZE rather than NBPG. 2003-04-02 07:35:54 +00:00
thorpej
c9228c8ddd Use PAGE_SIZE rather than NBPG. 2003-04-02 04:17:50 +00:00
perry
7b8af330e0 Add missing COMPATs
From PR port-shark/20130 from Todd Vierling
While I'm in there, sort them the other way, to match other ports
2003-04-02 00:28:25 +00:00
drochner
66a5580c6e Remove remaining uses of libsa/netif -- the "netif" structure was only
used to lookup a "struct of_dev", everything else was ballast.
Do it straightforward now and assign the ofdev directly to io_netif.
2003-03-13 15:36:06 +00:00
martin
008754f2e6 Increase symbol table space - it did not fit anymore. 2003-02-21 08:55:37 +00:00
perry
1f4ad37fe3 "Utilize" has exactly the same meaning as "use," but it is more
difficult to read and understand. Most manuals of English style
therefore say that you should use "use".
2003-02-05 00:02:24 +00:00
wiz
cd68fb44fb guarantee, not guarentee. Idea from miod@openbsd. 2003-02-02 10:24:38 +00:00
wiz
9115df8c49 success, not sucess. Noted by mjl. 2003-01-28 22:35:02 +00:00
wiz
7bd6fd354d unknown, not unkown. Noted by mjl. 2003-01-28 22:19:22 +00:00
toddpw
b9f1c92826 If booted_kernel ends in .aout, remove it, to help libkvm find an ELF kernel. 2003-01-20 01:44:10 +00:00
thorpej
49784e4bd0 Merge the nathanw_sa branch. 2003-01-18 06:33:41 +00:00
lukem
4bb41ae2f2 Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.

This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile.  Remove the now-unnecessary .keep_me files
whilst here.

Per lengthy discussion with Andrew Brown.
2003-01-06 17:40:18 +00:00
wiz
7e681f7063 interrupt with two rs. 2003-01-06 13:04:54 +00:00
wiz
45ad5c9584 successful with only one l. 2003-01-06 12:46:05 +00:00
thorpej
81c6d35e2b Remove obsolete MACHINE_ARCH -> arm32 2003-01-03 02:40:57 +00:00
thorpej
c2e9de7319 Don't define -D${MACHINE} in Makefile.arm. Instead, let platforms
that care define it themselves.  Note that evbarm NO LONGER defines
-D${MACHINE}.
2003-01-03 02:34:48 +00:00
wiz
ea577b210e Debugging is usually spelled with three gs. 2002-12-22 13:50:35 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
christos
729ccbc9cd si_ -> sel_ 2002-11-26 19:49:00 +00:00
thorpej
75ea1c1fd8 Use a linker script to craft and ELF image that will work
when copied to a.out via objcopy.  Stop using that frightening
elf2aout.sh shell script.
2002-11-21 01:38:41 +00:00
jdolecek
c82ab2eb79 now that mem_no is emitted by config(8), there is no reason to keep
copy of more or less identical iskmemdev() for every arch; move the function
to spec_vnop.c, and g/c machine-dependant copies
2002-10-26 13:50:17 +00:00
jdolecek
e0cc03a09b merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +00:00
bsh
7b6639153c make atomic_{set,clear}_bit() inline for arm32 ports, and
add <machine/atomic.h> for them.
2002-10-19 12:22:33 +00:00
bjh21
d599df9587 Continue the " - . - 8" purge. Specifically:
add	rd, pc, #foo - . - 8		->	adr	rd, foo
ldr	rd, [pc, #foo - . - 8]		->	ldr	rd, foo

Also, when saving the return address for a function pointer call, use
"mov lr, pc" just before the call unless the return address is somewhere
other than just after the call site.

Finally, a few obvious little micro-optimisations like using LDR directly
rather than ADR followed by LDR, and loading directly into PC rather than
bouncing via R0.
2002-10-14 22:32:50 +00:00
elric
5ab71e20b0 Added commented out cgd(4)s to GENERIC configs. 2002-10-14 18:39:22 +00:00
jdolecek
74c4946bb2 include shark/conf/std.shark, shark/conf/std.arm32 doesn't exist 2002-10-10 09:17:05 +00:00
provos
2f7a0aaac8 add SYSTRACE; approved perry. 2002-10-06 02:11:54 +00:00
chs
cdd13585e9 add missing protos. 2002-10-05 17:01:51 +00:00
chs
0b379cf8d7 add missing protos. 2002-10-05 17:01:49 +00:00
chs
50697f04c0 remove leftover acorn32 headers. 2002-10-05 17:01:10 +00:00
elric
d19d268a95 assign majors for raw and cooked cgd's. 2002-10-04 18:28:24 +00:00
chris
5dded94793 Fixup IPL_LEVELS to be correct. This matches the change I did to footbridge
based systems.  Untested on shark, but is the right thing to do.  I suspect
the original arm32 intr.h had the bug, and when the ports split we just took
the bug.
2002-10-04 10:21:33 +00:00
thorpej
89bf5a8f8e Add trailing ; to CFATTACH_DECL. 2002-10-02 15:52:22 +00:00
thorpej
ad2758f375 Use CFATTACH_DECL(). 2002-10-01 19:18:57 +00:00
wiz
b1c7ac0e6d "definitions" has lots of 'i's, but that's not reason to leave one out. 2002-09-29 23:23:56 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
martin
2c7b00b18f Add SYMTAB_SPACE option to make DDB actually useable. 2002-09-27 10:08:19 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
thorpej
71404bb533 Don't include <sys/map.h>. 2002-09-25 22:21:01 +00:00
cgd
e4cb5327e8 For ISA intrs 0-15, use string of the form "isa intr NN", rather than
just "isa intr".  Having vmstat -i show multiple "isa intr" lines w/
different counts is less than desirable.  Reviewed by thorpej.
2002-09-25 17:05:26 +00:00
lukem
3ea2e21f82 enable USERCONF by default; it's small and extremely useful to have available. 2002-09-18 02:43:53 +00:00
thorpej
c0691fd89d Back out previous; it breaks binary compatibility between platforms
in the same MACHINE_ARCH.
2002-09-14 15:54:00 +00:00
mycroft
e9a1e15d7e Move some #defines out of _KERNEL. 2002-09-14 12:58:37 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
thorpej
77a6866508 Enable caching on kernel and user page tables. This saves having
to do uncached memory access during VM operations (which can be
quite expensive on some CPUs).

We currently write-back PTEs as soon as they're modified; there is
some room for optimization (to write them back in larger chunks).
For PTEs in the APTE space (i.e. PTEs for pmaps that describe another
process's address space), PTEs must also be evicted from the cache
complete (PTEs in PTE space will be evicted durint a context switch).
2002-08-24 02:16:30 +00:00
thorpej
6cc7c1c1ff * Add PTE_SYNC() and PTE_SYNC_RANGE() macros. These don't actually do
anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
  where vtopte() is used.
2002-08-22 01:13:53 +00:00
thorpej
5fddbbe3d5 Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.
2002-08-21 18:34:31 +00:00
thorpej
a7d44c2503 Use separate function pointers for dmamap_sync pre- vs post- operations.
Change the bus_dmamap_sync() macro to test the ops argument against pre-
and post- constants.  The compiler will optimize out dead code because
of the constants.  Since post- operations are not needed on ARM (except
for ISA bounce buffers), this eliminate a large number of function calls
which are noops, each of which cost at least 6 cycles just in the call
and return overhead (not to mention whatever other useless work the
compiler decides to do in the callee).
2002-08-17 20:46:26 +00:00
briggs
0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
thorpej
dce4476374 Overhaul how DMA ranges work in the ARM bus_dma implementation.
A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.
2002-07-31 17:34:23 +00:00
thorpej
79af00bddb Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical.  Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.
2002-07-31 00:20:51 +00:00
thorpej
d3aa5664b7 Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
2002-07-30 16:16:38 +00:00
thorpej
3912e469dd Rename cdev_systrace_init() to cdev_clonemisc_init(), so it can
be properly used by any misc. cloning device.  While here, correct
a comment to indicate that "open" is the only entry point and that
everything else is handled with fileops.
2002-07-19 16:38:14 +00:00
abs
eb73becae2 Ensure all INSTALL config files consistantly include PIPE_SOCKETPAIR,
MALLOC_NOINLINE, and VNODE_OP_NOINLINE. The exceptions are when they
include another config files that already defines the options, or if
they are for an embedded board, just define a few extra options, and
do not already define PIPE_SOCKETPAIR.
2002-07-05 13:40:10 +00:00
itojun
73941c5096 avoid hardcoding MBR_MAGICOFF and MBR_MAGIC. 2002-06-18 00:37:25 +00:00