scottr
be3e57de4a
Changes to make a dcm-based console work properly:
...
- While servicing an rx, tx, or modem status interrupt: if we have a
NULL struct tty * or if the tty isn't open, just return.
- Skip the self test if we are the console; it manages to do funny
things to autoconfig messages. (XXX - this should be fixed)
1997-04-04 18:16:07 +00:00
thorpej
2c0d2cb557
#ifdef DIOVERBOSE a variable needed only in such code.
1997-04-04 09:53:43 +00:00
scottr
aa88a240fe
Fix printf() and other warnings when compiled with DEBUG defined.
1997-04-02 22:37:21 +00:00
christos
e0443987e7
Add netatalk netisr
1997-04-02 21:48:55 +00:00
scottr
40d1c295a2
Specify more aggressive warning options for C code.
1997-04-01 23:16:41 +00:00
scottr
6c7f504b20
Add forward declarations for struct exec_package and struct exec_vmcmd,
...
to minimize the number of unnecessary #includes.
1997-04-01 20:05:14 +00:00
scottr
54c4c9b37f
Catch up with COMPAT_HPUX changes, and make this compile with -Wall.
1997-04-01 19:59:59 +00:00
scottr
5be5fe416e
Relocate some prototypes needed for COMPAT_HPUX to hilvar.h
1997-04-01 19:29:09 +00:00
scottr
698c8410a2
Add prototypes, and make this compile with -Wall. Remove register
...
modifier from all declarations.
1997-04-01 03:12:06 +00:00
scottr
66c9485803
Add prototypes, and make this compile with -Wall.
1997-04-01 03:10:57 +00:00
scottr
43b1b8c08a
Relocate some prototypes needed by other MD code.
1997-04-01 03:07:19 +00:00
scottr
4c6e335897
Add prototypes as appropriate.
1997-04-01 03:03:56 +00:00
gwr
5485e1ff75
Need a common <m68k/pcb.h> for gdb.
1997-03-31 21:39:51 +00:00
scottr
c008fc0aa0
Add prototypes, and make this compile with -Wall. Remove register
...
modifier from all declarations.
1997-03-31 07:32:14 +00:00
scottr
ea23ab53c3
Add missing argument to diagnostic printf()
1997-03-31 07:30:41 +00:00
scottr
52cb2d2955
Add prototypes, and make this compile with -Wall. Remove register
...
modifier from all declarations.
Also, handle sc_flags better so that we don't lose track of the
DCM_ISCONSOLE bit.
1997-03-31 07:29:49 +00:00
thorpej
3878faec9c
Fix a bogus argument to dmafree(), from Scott Reynolds.
1997-03-31 01:05:19 +00:00
thorpej
6a3ca35ec3
Build these kernels with full debugging symbols.
1997-03-31 00:03:10 +00:00
thorpej
cb24b0200a
Don't allocate mclrefcnt[]; it's dead and gone.
1997-03-27 21:01:20 +00:00
gwr
37b247edde
Renames: /dumpconf/cpu_dumpconf/, /boot/cpu_reboot/
1997-03-26 22:42:13 +00:00
gwr
71e43d14ab
Move findroot/setroot stuff from configure() to cpu_rootconf().
1997-03-26 22:38:40 +00:00
mycroft
e44dc60fc6
Fix editing error in new config changes.
1997-03-22 00:17:59 +00:00
thorpej
12c0a8c5c8
Correct keyboard map references in the default case. From
...
Klaus Klein <kleink@layla.inka.de>, PR #3361 .
1997-03-20 08:07:01 +00:00
mycroft
c14b8539e0
Make active_user_pmap() DTRT while a process is exiting.
1997-03-18 16:39:30 +00:00
mycroft
d19eaa3d4f
Add an active_user_pmap() macro, and use it as appropriate.
1997-03-18 14:13:55 +00:00
mycroft
1068c83731
Check for curproc being null before dereferencing it in more cases.
1997-03-18 13:01:07 +00:00
gwr
08f7a407f9
Separate bcopy and copypage stuff from copy.s
1997-03-17 19:46:36 +00:00
thorpej
1d987a161b
#include <net/if_media.h>
1997-03-17 03:17:34 +00:00
hpeyerl
52cbdd41c4
Lager is now config.new. ya ya, I've been busy.
1997-03-16 18:46:56 +00:00
thorpej
48556a75d2
Use <m68k/m68k/support.s>
1997-03-16 10:49:43 +00:00
thorpej
e93bf2f15b
Garbage-collect hpux_dumpu().
1997-03-16 10:00:45 +00:00
thorpej
701652d81c
In cpu_coredump(), don't bother dumping an HP-UX style u-area. What it
...
produced was useful once, but isn't worth the clutter now.
1997-03-16 09:59:40 +00:00
thorpej
de5a4c2d10
Remove reference to Locore.c
1997-03-16 09:47:48 +00:00
thorpej
611fa5e05b
Old lint helper, not used anymore, and really quite amazingly out of
...
date; this is 4.3 vintage. Just nuke it.
1997-03-16 09:45:38 +00:00
thorpej
5a1149b25d
Nuke MDP_HPUXTRACE.
1997-03-16 09:40:01 +00:00
thorpej
c5b6d5ed07
Prototype hpux_setregs().
1997-03-16 09:14:25 +00:00
thorpej
c9e8e99421
Remove the COMPAT_HPUX stuff from setregs(); the HP-UX compatibility
...
code has its own implementation now.
1997-03-16 09:12:13 +00:00
thorpej
832cc66899
Implement hpux_setregs(). While I'm here, nuke the MDP_HPUXTRACE
...
code. In practice, no one traces NetBSD programs with HP-UX debuggers,
and the evil required to make it work should not be discussed in the
presence of small children.
1997-03-16 09:10:31 +00:00
thorpej
27c7e59344
Define the HP-UX sigcontext structure here, and prototype hpux_sendsig().
1997-03-16 03:45:33 +00:00
thorpej
5a14c36be7
Move all COMPAT_HPUX signal code into hpux_sendsig() and hpux_sys_sigreturn().
1997-03-16 03:43:39 +00:00
thorpej
f5c982a251
In cpu_coredump(), use `fputype' to decide if we dump FP regs.
1997-03-15 23:40:25 +00:00
thorpej
99cc2e1cec
Garbage-collect use of FPCOPROC.
1997-03-15 23:34:32 +00:00
thorpej
bbcda6f26b
- /dev/mem: only allow access to physical RAM
...
- /dev/kmem: disallow access to devices
This is designed to protect device registers from being corrupted
accidentally by "innocent" mem/kmem grovellers.
1997-03-15 23:30:12 +00:00
thorpej
6fa9be2e93
Use `fputype' at run-time rather than FPCOPROC at compile-time.
1997-03-15 23:25:49 +00:00
thorpej
4fd90cefdb
- Garbage-collect doadump(); it hasn't been used for some time.
...
- Supply an `fputype' global. Since all hp300's have an FPU, default
it to FPU_68881, setting it to FPU_68040 if we detect a 68040 CPU.
- Use `fputype' at run-time rathern than FPCOPROC at compile-time.
- Re-arrange locore slightly; move startup code to the beginning, right
after the vector table.
1997-03-15 23:23:55 +00:00
thorpej
2cea1ec9d7
- Make hpux_sys_getcontext() table-driven.
...
- Use `fputype' at run-time rather than FPCOPROC at compile-time.
1997-03-15 23:20:20 +00:00
thorpej
1023932f47
User text segment begins at 8k, now, to match the other m68k ports.
1997-03-15 22:02:24 +00:00
thorpej
26644d1232
Change MID_MACHINE to MID_M68K; we now use the same executable format as
...
the rest of the m68k ports.
1997-03-15 22:01:02 +00:00
thorpej
0e368d2e40
Don't set __LDPGSZ to 4096; we use 8192 like the rest of m68k-land, now.
1997-03-15 21:59:20 +00:00
is
07b064e02e
New ARP system, supports IPv4 over any hardware link.
...
Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.
For the detailed change history, look at the commit log entries for
the is-newarp branch.
1997-03-15 18:09:08 +00:00
mycroft
f7ad6fff40
Put the genassym.sh output in a temp file, and mv -f it, in case
...
it fails spectacularly and doesn't clean up. Also, don't depend genassym.c
(since it no longer exists), and remove dependencies for genassym.o (since it
no longer exists).
1997-03-14 23:14:39 +00:00
mycroft
3a99046fbb
Update this to new config.
1997-03-14 04:21:13 +00:00
thorpej
711486fd1b
Fix a typo (oops).
1997-03-13 17:14:45 +00:00
thorpej
8229701876
oops, don't need trap.h here anymore
1997-03-13 09:29:03 +00:00
thorpej
72ba35e689
Don't genassym the trap type values; just include <machine/trap.h>
1997-03-13 09:27:21 +00:00
thorpej
deeac396e7
Use genassym.sh to facilitate cross compiling.
1997-03-13 09:24:21 +00:00
thorpej
f6d3f6c93b
Use the script version to facilitate cross compiling.
1997-03-13 09:22:19 +00:00
thorpej
a92ec8002e
Enable COMPAT_M68K4K.
1997-03-12 18:33:09 +00:00
thorpej
1777807068
Add 9660 file system, and set DDB_ONPANIC to 0.
1997-03-12 02:08:02 +00:00
thorpej
dc1020fe40
Print the interrupt level in scsiattach().
1997-03-10 08:37:31 +00:00
thorpej
bb0d35b7e4
Bump version - we compute the kernel load address differently.
1997-03-10 08:02:23 +00:00
thorpej
4e541ff7ea
Fix rounding of lowram value; ensure the kernel load address is on
...
an 8k boundary.
1997-03-10 08:00:47 +00:00
fvdl
115b6d92fa
Define ALIGNED_POINTER
1997-02-24 23:16:53 +00:00
mrg
22245e60a5
comment PFIL_HOOKS as it is redundant (as an option) when used with ipfilter. minor format
1997-02-18 21:09:56 +00:00
thorpej
82adcde8ca
Fix edit-o that caused panic's when root was on HP-IB disk.
1997-02-05 20:56:29 +00:00
thorpej
f79798f810
Bump version: Add support for booting gzip'd kernels
1997-02-04 19:42:29 +00:00
thorpej
76839db714
Add the ".gz" names of the kernels to the kernel names list. New
...
boot order is:
netbsd -> netbsd.gz -> netbsd.bak -> netbsd.bak.gz ->
netbsd.old -> netbsd.old.gz -> onetbsd -> onetbsd.gz
1997-02-04 19:40:07 +00:00
thorpej
6a721b41eb
Bump version: Add support for reading gzip'd miniroot images
1997-02-04 19:36:29 +00:00
thorpej
8ceaa2c3f5
- If copying the miniroot from an NFS server, don't attempt to
...
compute the number of iterations through the copy loop based
on file size; the miniroot image may be compressed. Instead,
ignore short reads in the NFS case, and handle them like EOF.
- Fix typo in a printf format.
1997-02-04 19:34:09 +00:00
thorpej
e876a86309
Add support for transparent handling of decompressing read, useful
...
for gzip'd kernels and miniroot images.
1997-02-04 19:28:50 +00:00
thorpej
5a9b27d5cf
Set the heap limit to the last byte of the 3rd page from the
...
end of RAM, i.e.:
[ heap limit page][msgbuf page][ROM scratch page]
| |
heap limit end of RAM
1997-02-04 19:14:57 +00:00
thorpej
1e250357ac
Thou shalt not taunt the HP BOOTROM with silliness such as incorrect
...
link order.
1997-02-04 08:39:26 +00:00
perry
19d153fc48
Nuke some options GENERIC residue.
1997-02-04 04:57:10 +00:00
perry
0b3a46d6b3
Nuke some GENERIC residue.
1997-02-04 04:31:55 +00:00
thorpej
0130161343
Bump version: Reorganization of boot block code
1997-02-04 03:59:40 +00:00
thorpej
8226741fc2
Replay history: Added support for HP-IB cartridge tapes
1997-02-04 03:58:52 +00:00
thorpej
25f97c348f
Reply history: Merged network and disk boot programs
1997-02-04 03:57:51 +00:00
thorpej
f52a7cea62
Replay history: Added support for network booting
1997-02-04 03:57:08 +00:00
thorpej
b327731a21
Bump version: Reorganization of boot block code
1997-02-04 03:55:56 +00:00
thorpej
6c19137655
Replay history: Added support for HP-IB cartridge tapes
1997-02-04 03:54:56 +00:00
thorpej
a0864b3e07
Complete and total reorganization of the hp300 boot code, modeled
...
closely after the build process used by NetBSD/alpha's boot code.
1997-02-04 03:51:37 +00:00
thorpej
876ea64acb
Add "options LKM", suggested by Klaus Klein <kleink@layla.inka.de>.
1997-02-02 17:29:42 +00:00
thorpej
2a0c6f4a0a
Use splkbd().
1997-02-02 09:40:31 +00:00
thorpej
47e3ffe813
Definition of splhil() is in param.h now.
1997-02-02 09:39:21 +00:00
thorpej
14a4465f0b
- Implement _splraise(), like _spl(), but only modifies the SR if the
...
new ipl is higher than the ipl currently set in SR. (Thanks to
scottr@netbsd.org for implementing it while I was busy with other stuff!)
- Define spl{bio,net,tty,imp} in terms of _splraise().
- Move definition of splhil() here, and define splkbd() as an alias for it.
1997-02-02 09:34:26 +00:00
thorpej
65494a33cb
Garbage-collect extra copy of mappedcopy.
1997-02-02 08:03:06 +00:00
thorpej
2f2eed4a30
Use zeropage() in pmap_zero_page().
1997-02-02 08:01:32 +00:00
thorpej
c51511c5b5
zeropage -> devzeropage, and make it static.
1997-02-02 07:59:41 +00:00
thorpej
4b525c0004
Clean up the mappedcopy initialization code.
1997-02-02 07:58:49 +00:00
thorpej
00111f0a5d
- Eliminate some unnecessary cpu/mmu checks, based on what CPUs
...
the kernel was compiled for.
- Add some comments about possible further optimization.
- Garbage-collect extra copypage()
1997-02-02 07:55:52 +00:00
thorpej
2bf5021447
- Use <errno.h>, not "extern int errno."
...
- Define FPU constants.
1997-02-02 07:53:16 +00:00
thorpej
834bef67f2
If the user has halted the system, allow them to press a key to reboot.
1997-02-02 05:33:30 +00:00
carrel
31ff345489
My config files. To quote from thorpej: "for kicks".
1997-02-02 00:23:23 +00:00
thorpej
312e813007
Oops, need PFIL_HOOKS.
1997-02-02 00:11:33 +00:00
thorpej
f28303c413
- Garbage-collect a kludge necessary when we were using old config.
...
- Synch the "clean" rule with the i386 port's.
- Add a commented-out rule for generating assym.h w/ the new genassym.sh.
Some slight changes need to be made to genassym.h to make it work with
m68k, so we can't use it just yet.
1997-02-01 23:55:10 +00:00
carrel
05c0e704dc
Make "options HP340" actually work without having "option HP360".
1997-01-31 23:01:21 +00:00
carrel
32f2102a58
Patch from thorpej to mark non-console grf's and ite's alive.
1997-01-31 21:16:50 +00:00
thorpej
2c94d6307c
Fix typo introduced in new setroot code. (There's only just a little
...
irony in that, eh?)
From Klaus Klein <kleink@layla.inka.de>, PR #3173 .
1997-01-31 20:20:53 +00:00
thorpej
04da46b022
Gah, missed another NFSCLIENT -> NFS.
1997-01-31 06:12:57 +00:00
thorpej
41809f9413
Adopt for new file system and root spec grammar.
1997-01-31 05:56:10 +00:00
thorpej
739f23a219
This file is obsolete; this information is now generated by config(8).
1997-01-31 05:12:49 +00:00
thorpej
8763a04e25
Use the new machine-independent setroot().
1997-01-31 01:49:41 +00:00
scottr
fc20c2eb8f
Add missing major number decls, from Klaus Klein (closes PR 3165).
1997-01-30 22:11:19 +00:00
scottr
13802e3a85
Add DIOVERBOSE per Jason; clean up formatting for some options.
1997-01-30 18:33:52 +00:00
thorpej
570522c72c
Clean up #includes.
1997-01-30 10:32:51 +00:00
thorpej
5906c26c8b
Commit this to the right place, this time.
...
The boot blocks do a primitive form of autoconfiguration. Duplicate some
of the old config strcutures for the benefit of the boot blocks; they
don't need something as flexible as the kernel does.
1997-01-30 10:31:44 +00:00
thorpej
40d51256bb
These files are no longer needed.
1997-01-30 10:00:39 +00:00
thorpej
5e781164af
Update for new-style config.
1997-01-30 09:58:57 +00:00
thorpej
add93ce69e
Garbage-collect some uneeded stuff now that we're new config only.
1997-01-30 09:55:45 +00:00
thorpej
d26d94a7a5
Regen to clear up RCS id snafu.
1997-01-30 09:20:42 +00:00
thorpej
cb63bb9de5
Garbage-collect all old-style autoconfiguration support; it is no
...
longer supported. The hp300 port uses new config now.
1997-01-30 09:18:33 +00:00
thorpej
9bb27910a9
Convert to new-style autoconfiguration; old-style config is no longer
...
supported.
1997-01-30 09:14:10 +00:00
thorpej
f19d55d659
- Garbage-collect the old-style configuration glue.
...
- Make sure we don't get interrupts in dcmselftest().
1997-01-30 09:11:24 +00:00
thorpej
f5bb637c10
- Convert these drivers to new-style autoconfiguration. Old-style
...
config is no longer supported.
- Use a much more obvious SCSI job queueing scheme.
1997-01-30 09:08:55 +00:00
thorpej
365324ec10
- Convert these drivers to new-style autoconfiguration. Old-style
...
configuration is no longer supported.
- Use a much more obvious HP-IB job queueing scheme.
1997-01-30 09:06:51 +00:00
thorpej
d49c71cb8a
- Use indicies, rather than pointer arithmetic, to track DMA chain
...
segments.
- Use a much more obvious DMA job queueing scheme.
- Fixup some debugging code.
1997-01-30 09:04:33 +00:00
thorpej
7bfe4e11c4
Garbage-collect old-style autoconfiguration glue.
1997-01-30 09:00:21 +00:00
thorpej
743140bb51
Garbage-collect old-style autoconfiguration code. Adopt boot device
...
detection code to new-style autoconfiguration.
1997-01-30 08:59:29 +00:00
hpeyerl
56542666eb
fix an *old* booboo where the dma queue wasn't being set in unexpected
...
case. Found, fixed, and dictated by jason. (thorpe)
1997-01-26 18:04:10 +00:00
hpeyerl
8cc55c80b6
::->: :-)
1997-01-26 17:55:52 +00:00
scottr
1085290516
Remove obsolete timezone specification
1997-01-20 16:55:32 +00:00
thorpej
112e338d6b
Fix botch in PA calculation for DIO-II devices. Bug noticed and fix
...
provided by Klaus Klein <kleink@layla.inka.de>, PR #3097 .
1997-01-12 21:27:26 +00:00
scottr
cc061d0a98
Normally, iteon() returns an int. If NITE == 0, define iteon() to be 0.
...
Closes PR 3091.
1997-01-10 00:07:27 +00:00
scottr
b917ce3294
Bracket kernel structs with #ifdef _KERNEL so that bootblocks will once
...
again build.
1997-01-09 01:07:59 +00:00
mrg
c71a371532
use pseudo-device ipfilter, not ipl.
1997-01-07 11:35:01 +00:00
thorpej
c56e780e4f
Bring some sanity into my frazzled existence:
...
- Always ensure that RAW_PART ("c") can be opened.
- Disallow unused or non-existent partitions from being opened.
- Don't do bounds checking or partition translation on RAW_PART.
This is consistent with other disk drivers in the NetBSD source tree,
and fixes a condition where the user could not fix a corrupted disklabel
due to a bogus offset for partition "c".
1997-01-07 09:29:30 +00:00
thorpej
32dda9a886
Kludge newvers rule, so that it works with old and new config.
1997-01-06 08:49:30 +00:00
thorpej
c26a11ab21
Add PFIL_HOOKS and ipl pseudo-device.
1997-01-06 08:48:36 +00:00
thorpej
7e3b804ce5
Add ipl pseudo-device.
1997-01-06 08:47:43 +00:00
thorpej
246654663f
Add "ipl" device at cdev major 18.
1997-01-05 21:29:49 +00:00
thorpej
f77141521c
Oops, build dio.o in the old config case, too. Pointed out by
...
Dave Carrel <carrel@cisco.com>.
1997-01-05 04:41:48 +00:00
thorpej
e2c6ed87ec
Fix several semantic bugs:
...
- Always allow RAW_PART to be opened, regardless of the partition table.
- Never do partition translation on RAW_PART; it's always offset 0.
- Always make sure the disklabel is read from RAW_PART.
- Make *strategy() return values consistent.
This fixes a condition where a bogus partition table could be written
to the disk from SYS_INST, and the user had no way to rewrite with
a correct partition table, since RAW_PART would be invalid.
1996-12-21 21:34:40 +00:00
thorpej
0d58626f72
This wasn't just a spelling error... I invented a whole new word!
1996-12-21 21:23:43 +00:00
thorpej
c0c07cd30e
Always use `SLOWSCSI'. Some devices need a long delay between phase
...
changes, apparently. This is reported to work around some odd failures
people were seeing during first-time installation onto a SCSI disk.
1996-12-17 09:21:42 +00:00
thorpej
7373a43fcf
Generate initial copies of these files.
1996-12-17 09:01:24 +00:00
thorpej
838edf78fd
Snapshot of new config for NetBSD/hp300. This isn't quite finished yet.
...
We're about 75% there. SCSI and HP-IB are not yet supported in a new
config kernel; some autoconfiguration hackery has to be done there, yet.
These changes are enough to network boot a diskless kernel.
New config glue is enabled with the "NEWCONFIG" kernel option. If that
option is not present, an old config kernel will be built. Any kernel
configured with config(8) will automatically pick up the NEWCONFIG
option from std.hp300.
1996-12-17 08:40:56 +00:00
thorpej
7b4ca2ebe5
Kill __BROKEN_INDIRECT_CONFIG
1996-12-17 08:11:50 +00:00
thorpej
9a8786f719
Clean up cpu_startup() a bit:
...
- move data structure allocation into a new function, allocsys(), like
the i386 port.
- garbage-collect the BUFFERS_UNMANAGED code.
1996-12-11 16:49:23 +00:00
thorpej
f82a494e0f
Fix typo in comment.
1996-12-11 09:10:38 +00:00
thorpej
66cbbf68ff
Copyright assigned to The NetBSD Foundation.
1996-12-09 17:35:24 +00:00
thorpej
5dc95f5908
Garbage-collect DMAINTLVL; it's not needed any more.
1996-12-09 06:18:13 +00:00
thorpej
49471d5fd5
Sync with reality.
1996-12-09 03:56:01 +00:00
thorpej
01667974d0
isrlink() now returns a cookie. We're not interested in the cookie, so
...
cast to (void).
Call dmacomputeipl() after we've hooked up our interrupt handler.
1996-12-09 03:16:26 +00:00
thorpej
648a1b19ae
isrlink() now returns a cookie. We're not interested in the cookie, so
...
cast to (void).
1996-12-09 03:14:06 +00:00
thorpej
0d6571ba4d
Defer hooking up the DMA controller interrupt. Add a new funciton,
...
dmacomputeipl(), which is called by drivers which use DMA once they've
hooked up their interrupts. This new function computes the appropriate
ipl to use for the DMA controller and (re-)establishes it's interrupt.
1996-12-09 03:09:51 +00:00
thorpej
75a37ecc60
Print the interrupt levels for bio, net, and tty computed during
...
autoconfiguration.
1996-12-09 03:07:11 +00:00
thorpej
ce7ecde8a3
Dynamically compute the PSL value for spl{bio,net,tty,imp}() calls.
1996-12-09 03:04:46 +00:00
thorpej
c36215249a
Add EXEC_SCRIPT (I don't even want to know how I forgot it before...)
1996-12-09 01:53:30 +00:00
thorpej
b5c8aff18b
In setroot(), fix mishandling of the `config netbsd root on nfs' case
...
that caused a NULL pointer dereference.
1996-12-07 19:00:46 +00:00
cgd
96acdadef7
First step inn removing config_scan() and the hacks that gave devices
...
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:
Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
1996-12-05 00:13:47 +00:00