Commit Graph

47118 Commits

Author SHA1 Message Date
nisimura e7c225d7b2 Regen; product IDs for IDT RC32334 and RC32332 systeml controllers. 2001-05-31 01:13:33 +00:00
nisimura 811d8d9102 Add product IDs for IDT RC32234 and RC32334 system controllers. 2001-05-31 01:10:34 +00:00
tsubai ba87a6d444 Add gcc-2.95 version. 2001-05-30 20:37:48 +00:00
bouyer 3fccfbf68d Uninitialised variables, from Krister Walfridsson: in umass_scsipi_request()
initialize cmd before using it. Now that it's initialised earlier, use it
instead of xs->cmd
2001-05-30 20:31:39 +00:00
bouyer 6973b27309 Uninitialised variable (from Krister Walfridsson): in acard_chip_map()
drop compatchan and use the real channel number instead.
2001-05-30 20:30:02 +00:00
bouyer 708bb529d3 uninitialised variable (from Krister Walfridsson):
in st_cmprss(), init flags to 0 (never changed, but this should change soon
anyway, for ATAPI tapes support)
2001-05-30 20:28:17 +00:00
itojun 23395d5017 build faith(4) only if INET and INET6 are specified.
From: joda@pdc.kth.se (Johan Danielsson) on tech-net
2001-05-30 17:50:46 +00:00
itojun 96a42a18dc fix mbuf leak due to meaningless MGETHDR. from niels provos 2001-05-30 16:42:02 +00:00
lukem d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
toshii e2c5f5866f Use sys/arch/arm/arm/blockio.S.
Actually, these functions aren't used by hpcarm but is necessary to be
able to link sys/arch/arm/mainbus thing.
2001-05-30 14:39:19 +00:00
leo 49927dd845 Add itepoll() prototype as suggested by 'maximum entropy' (pr#13047). 2001-05-30 14:25:07 +00:00
tsubai 2eae10adb5 Inline bswap{16,32} when the argument is constant. 2001-05-30 13:08:34 +00:00
soren 72943f1165 Pasto. 2001-05-30 12:52:06 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
mrg 09cf52ad81 regen. 2001-05-30 11:48:07 +00:00
mrg c13e3a6693 use _KERNEL_OPT 2001-05-30 11:40:35 +00:00
mrg 6a89288a37 use _KERNEL_OPT. 2001-05-30 11:37:21 +00:00
mrg 72d327d434 use _KERNEL_OPT not _KERNEL&&|_LKM 2001-05-30 11:27:46 +00:00
haya f591dd2f9d Cosmetic change. 2001-05-30 09:21:47 +00:00
nisimura f32430d518 Add a case clause for IDT RC32332/RC32334 processor personality
inside a commented-out block.
2001-05-30 09:06:28 +00:00
nisimura 16a60efd2c Add PRiD 0x18 for IDT RC32332/RC32334 processors. 2001-05-30 07:21:51 +00:00
thorpej c973d6a0eb Skip the pseudo-header if nxt == 0. This is already documented
in in6_cksum(9) and is also the behavior of the i386 optimized
version.
2001-05-30 03:06:56 +00:00
bjh21 2d632efc89 Start using the blockio functions. This makes raw reads from hcsc 20% faster
(is that all?).
2001-05-30 00:19:43 +00:00
bjh21 f15491e9d3 Move the declarations of blockio.S functions from katelib.h to a new, exciting
<arm/blockio.h>.  katelib.h includes it for compatibility.
2001-05-30 00:16:36 +00:00
bjh21 d51c27dfa8 Add read_multi_1() which does what it says fairly fast. 2001-05-30 00:14:09 +00:00
chs 966a1b86f8 initialize the b_dep field in malloc()'d buffers. fixes PR 13065. 2001-05-29 23:08:06 +00:00
bjh21 7d9a4dbad7 Move blockio.S from sys/arch/arm32/arm32 to sys/arch/arm/arm, since I want to
start using it on arm26.

hpcarm gets to keep its own version, since it's not identical and I haven't
got an hpcarm box to test.
2001-05-29 23:03:20 +00:00
ragge d674a69f7a And now we're running! 2001-05-29 21:55:00 +00:00
ragge 2de1ab0486 Add ci_cpuid.
Change the CLKF_ macros because the idle loop is now running at IPL1.
2001-05-29 21:29:32 +00:00
ragge 3b4d7a2948 Must lock kernel when softclock is called from outside hardclock. 2001-05-29 21:28:14 +00:00
ragge 1cf7a84a88 Add a bunch of locking code for MP systems. 2001-05-29 21:27:25 +00:00
ragge c20a10d57d Call proc_trampoline_mp() after fork in multiprocessor environment. 2001-05-29 21:26:44 +00:00
ragge 6492868388 Change Swtch so that the old process context is stored directly and the
idle loop is on the interrupt stack instead of the last running process'
stack. This is needed to work in a multiprocessor environment.
2001-05-29 21:25:11 +00:00
thorpej f0c1fb1bb2 Initialize DDB at boot time and break into it if the "d" argument
is specified to the kernel.

XXX PMON doen't load symbols for us -- need a dbsym(1) for ELF.
2001-05-29 18:40:25 +00:00
thorpej 5331656107 The QED RM7000 can use the same idle routine as the QED RM52xx. 2001-05-29 18:19:20 +00:00
thorpej 74fa4349ae Install power-saving idle routines at the end of cpu_identify(). We
currently handle the QED RM52xx here.
2001-05-29 17:54:56 +00:00
thorpej c8988c2caa Add an idle loop routine for the QED RM52xx family. This uses the
RM52xx `wait' insn to power down the pipeline.
2001-05-29 17:51:55 +00:00
leo 3c596b34a3 We need the fonts for pci_vga too... 2001-05-29 10:39:56 +00:00
scw 9c1aa86e46 One less item (MD siop driver is no more). 2001-05-29 08:20:42 +00:00
leo bb159c932e Regen. 2001-05-29 06:45:56 +00:00
leo dbacb7c9b6 Move over to pciide. My CDROM drive wouldn't work with the wdcisa attachment,
but it does work with the pciide attachment.
2001-05-29 06:42:21 +00:00
leo 49009d088a Import pciide_machdep.c from i386. 2001-05-29 06:26:08 +00:00
leo 60c1352cd4 Prototype milan_vga_init() 2001-05-29 06:02:26 +00:00
leo 73cc88a7dd Whoops, where did the include of vga_pci.h go? 2001-05-29 06:01:27 +00:00
leo 0f3cd124db Fix compile error. 2001-05-29 05:58:18 +00:00
mrg 3783ca5d30 define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20:20 +00:00
chs ffcbc851a0 fix some problems in sddump() with uninitialized variables. 2001-05-29 01:02:39 +00:00
thorpej f2800b2299 Don't have conf.h (pasto). 2001-05-28 23:25:25 +00:00
bjh21 c5260261ba Use the pseudo-DMA facilities of the HCCS SCSI podule. Code largely derived
from the pc532 "ncr" driver.

This gets me up to 300 KB/s from /dev/rsd0a on my A310.  I think
bus_space_{read,write}_multi_1 and copy{in,out} are the bottlenecks now.
2001-05-28 22:54:10 +00:00
chs 9e78300eda remove check for too-small MSGBUFOFF now that the reason for it is gone. 2001-05-28 22:47:05 +00:00
thorpej 9d8dc820a8 Forgot bsd.kinc.mk 2001-05-28 22:34:25 +00:00
chs 187cadcb77 don't define bpendtsleep in profiling kernels since it confuses gprof. 2001-05-28 22:20:03 +00:00
chs ae0ddea4f6 in pagemove(), use pmap_k{enter_pa,remove} instead of pmap_{enter,remove}
since buffer cache pages aren't really managed by UVM.
2001-05-28 22:16:17 +00:00
chs 21b70bf745 assert that pmap_extract() succeeds. 2001-05-28 22:11:45 +00:00
chs 8c221ed505 style cleanup. 2001-05-28 22:00:12 +00:00
chs e49a700498 remove a useless call to uvm_map_protect(). the kernel text is already
mapped read-only in pmap_bootstrap() and the comment which tried to
explain why this might be needed anyway didn't make any sense.
2001-05-28 21:54:26 +00:00
chs 1cedb649d4 move the spl*() and IPL_* definitions to intr.h. 2001-05-28 21:06:18 +00:00
chs a8651c4b09 make sun3x work again after the recent change to the m68k cpu_kcore_hdr:
allocate a page for dumps like the sun3 does rather than using part of
the msgbuf page.  this also lets the msgbuf use the full msgbuf page.
2001-05-28 20:56:54 +00:00
chs a83346f337 don't abuse cf_unit. 2001-05-28 20:52:34 +00:00
tshiozak 83da433ada fix for UX96 (and all Yamaha specific devices, hopefully).
- fix how to get endpoint addresses.
  - fix allocate count of pipes.
  - add necessary null checks for asymmetry jacks.
2001-05-28 20:52:06 +00:00
scw d5c72b21e5 s/ncsrc/osiop.
While I'm here, ditch some excess baggage which is useless for
the RAMDISK kernel.
2001-05-28 18:39:45 +00:00
tshiozak 5505749bb1 add new device; Yamaha UX96 USB MIDI I/F. 2001-05-28 18:28:04 +00:00
he 47ae105daa Add Makefile snippets to install netboot in installation/netboot
under ``make release''.
2001-05-28 18:21:12 +00:00
thorpej af63f8979c D'oh, clear the soft interrupt bits in CAUSE *before* servicing
soft interrupts, rather than after, so that soft interrupts scheduled
by other soft interrupts don't get lost.
2001-05-28 18:19:27 +00:00
thorpej 442a329915 Statically-initialize `allevents' so that events can be registered
very early (before main() is called).
2001-05-28 16:40:31 +00:00
thorpej 16b9c60621 A port to the Algorithmics MIPS evaluation boards. We currently
support the P-5064, which has a QED RM5xxx CPU soldered on.

There is some skeletal support for the P-4032 (an older board, which
had an R4xxx CPU).  There are some placeholders for the P-6032, which
is their newest board, but no real code yet (the P-6032 has a different
PCI controller, the Algorithmics BONITO).

There are still some (apprently softintr-related) problems with the
algor kernel, but it works well-enough to self-host.

Kudos to Allegro Networks for loaning me a P-5064 board on which to do
the port.
2001-05-28 16:22:13 +00:00
kleink 7918542181 Need <lib/libkern/libkern.h>. 2001-05-28 15:53:51 +00:00
leo ed8360b3d7 Add missing semicolon. 2001-05-28 14:40:49 +00:00
scw eb9637dd7e Add COMPAT_15 and comment out COMPAT_SUNOS. (It's hardly used and saves
a bit of space on low memory models).
2001-05-28 11:14:41 +00:00
manu 36ea8f0ed5 Fixed a potential security problem (copyout after an error) 2001-05-28 10:51:20 +00:00
leo 2bcf7a5971 Add 'prev_sr' argument to milan_isa_intr() so we can properly defer interrupts
that come in at the wrong time.
2001-05-28 08:41:37 +00:00
leo b1ff453ae9 Add Milan console initialisation code. 2001-05-28 08:30:03 +00:00
leo 722a3ab56b Add VGA console probes. 2001-05-28 08:12:47 +00:00
leo a82df0faed Pass iot and memt to check_for_vga() 2001-05-28 07:22:37 +00:00
leo 78dbcfe665 Add bus_space_vaddr(). 2001-05-28 07:16:11 +00:00
leo be288018e2 PCI_VGA_SIZE -> PCI_MEM_SIZE. (Plus some comments on those constants). 2001-05-28 06:43:19 +00:00
minoura 2d8c98280c Cleanup. Addresses port-x68k/13051. 2001-05-28 06:18:20 +00:00
chs 45701591c6 add a genfs_mmap() and change all of the disk-based filesystems
to implement VOP_MMAP() with the genfs version, in preparation for
actually using this VOP.
2001-05-28 02:50:51 +00:00
onoe a62b5c1e2e add a comment why IFF_PROMISC is handled separately for SIOCSIFFLAGS:
Handle special case for IFF_PROMISC.  If only IFF_PROMISC
	flag is changed, do not call an_init() to avoid initiating
	reassociation to another access point.  It is really
	helpful for tcpdump(8).
2001-05-28 00:46:35 +00:00
matt 0a3911863f Use structure assignment instead of bcopy. 2001-05-28 00:15:10 +00:00
matt 8fb5853698 Change the bcopy's to structure assignments. 2001-05-28 00:12:21 +00:00
wiz 3686c30f46 Add RTC_OFFSET=0 line. 2001-05-27 23:52:41 +00:00
itojun e44d476e4e typo in comment 2001-05-27 23:46:51 +00:00
wiz c4633b8744 Add RTC_OFFSET line (see port-macppc/10265). 2001-05-27 23:39:03 +00:00
wiz 8676d3773e Honour RTC_OFFSET. Patches from Y. Takizawa <you@nightbreak.org> via
SUNAGAWA Keiki in port-macppc/10265. Also addresses port-macppc/10949.
2001-05-27 23:38:12 +00:00
manu 7046b15b3d Fixed the return value of ptrace for PEEKTEXT and PEEKDATA: return value must
be a pointer to data, which holds the result. Linux's glibc undo this odd
operation to bring the standard ptrace behavior to userland.
2001-05-27 21:17:16 +00:00
manu befe23c119 Implements correctly PEEKUSER and fixes various serious bugs. The status
of this file is not "officially broken" any more (gdb works).
2001-05-27 21:15:07 +00:00
manu 383c1b6319 Fixed two typo in comments 2001-05-27 21:11:12 +00:00
thorpej ebf9e47c26 Add quirks for the Algorithmics P-5064 on-board 21143, and a way to
get the Ethernet address from it (they don't have an SROM).

XXX The latter should be replaced with devprops when they exist.
2001-05-27 21:00:33 +00:00
pk aad64f942b !_LKM inclusion protection for opt_kgdb.h 2001-05-27 20:59:22 +00:00
matt e2148768dc Change _MACHINE_PIO_H to _POWERPC_PIO_H 2001-05-27 20:59:15 +00:00
is 45effccbef make the defopted "LEV6_DEFER" work for LKMs, too. 2001-05-27 20:22:57 +00:00
ragge 667dd41596 Remove ethernet CRC on received packets. 2001-05-27 19:36:06 +00:00
ragge b7fc0b163a Compare arguments must have correct order, won't work as expected otherwise. 2001-05-27 19:33:20 +00:00
thorpej 47745a094d Add support for the Algorithmics ISA floppy controller. 2001-05-27 18:16:21 +00:00
thorpej ce289cc293 Handle non-contiguous BARs. Needed to be able to configure e.g.
IDE and USB on a PIIX3.
2001-05-27 17:50:40 +00:00
itojun e91c2ce847 remove debug printfs, which can be too noisy. sync with kame. 2001-05-27 17:36:07 +00:00
ragge aee2068e10 Don't install machine/loadfile_machdep.h; per PR#12666. 2001-05-27 15:37:06 +00:00
sommerfeld 7d1ef74930 Fix kern/13049: missing unlock on failure exit from pmap_enter() 2001-05-27 14:31:27 +00:00
sommerfeld 4aaf078a4a Assorted microtime fixes (similar to fixes I made yesterday when
porting this code to i386mp branch):

 - call microset() early on each cpu so that calls to microtime()
before the first clock interrupt don't return trash.  this manifested
itself as garbage runtimes in "ps" for kernel threads.
 - avoid races between hardclock updating "time" and microset on a
different cpu reading it by adding a "microset_time" global which is
initialized from "time" on the primary cpu.
 - call microset every hz ticks, not every hz+1 (cosmetic)
2001-05-27 13:53:24 +00:00
kleink 021d12d997 Add 35401A drive (not picker) support; from Jarkko Teppo in PR
port-hp300/11183.
2001-05-27 09:09:05 +00:00
chs 7520514a5e don't abuse cf_unit. 2001-05-27 06:30:27 +00:00
chs d8e8c90c8a don't abuse cf_unit. 2001-05-27 06:19:39 +00:00
gmcgarry fadbc7d451 - remove dependency on libsa by mkboot since it is a host tool.
- adjust for endianness of host.

Cross-compiling of ELF bootblocks now works.
2001-05-27 05:35:11 +00:00
gmcgarry e8c65098f6 Protect against possible alignment problems. 2001-05-27 05:31:58 +00:00
gmcgarry f94a9b7669 Alignment for on ELF systems. ELF bootblocks now work. 2001-05-27 05:30:41 +00:00
minoura d0403f9f11 Add missing line in recording. Copy & paste error... 2001-05-27 05:30:02 +00:00
gmcgarry 9be5657e02 Alignment fix. rd disks now work on ELF systems. 2001-05-27 05:29:48 +00:00
minoura cbfe174737 Reset dx_nextoff and dx_nextsize before transfer. 2001-05-27 02:18:07 +00:00
itojun 78458be84d correct binary key material handling. sync with kame 2001-05-27 01:40:16 +00:00
chs c77ddb45b8 more fun with QUEUEDEBUG: include the file and line number in panics
and set the list pointers in elements to NULL after removing the element
from the list.
2001-05-27 01:36:47 +00:00
thorpej 9ec2953eef Make "reboot" an option at the root device/filesystem prompt (we
already had a "halt").
2001-05-27 01:29:50 +00:00
itojun 00e5ad3408 remove files we no longer need/maintain. sync with kame 2001-05-27 01:03:53 +00:00
chs 6ebe782061 mcount() is named __mcount() on ELF, do the right thing. 2001-05-27 01:01:08 +00:00
chs f5065c9c55 change the one non-extended asm back to using a single % before a
register name.  the rule is that extended asms should have the
regsiter-prefix %s escaped by doubling them, but non-extended asms
don't do the escaping thing, so there the %s should not be doubled.
2001-05-27 00:58:57 +00:00
bjh21 cbea766fd0 Add hcsc. 2001-05-26 23:02:06 +00:00
bjh21 5cc459efcc Quick hack of a driver for the HCCS 8-bit SCSI podule, based on the Oak driver.
Tested to the extent that it finds my disc.
2001-05-26 23:01:19 +00:00
matt 524a19371f Make t_flags a u_int instead of u_short. It's followed by a mbuf pointer
so there's padding around it already.  And it increases the amount of bits
available for TF_* flags.
2001-05-26 22:02:57 +00:00
bjh21 ebf4596009 regen 2001-05-26 21:48:31 +00:00
bjh21 eb6eb503f1 Fix typo in last commit. 2001-05-26 21:48:21 +00:00
bjh21 7b0faa44c9 regen 2001-05-26 21:47:30 +00:00
bjh21 d5ecc6c516 Add the 8-bit podules I got at Wakefield (except the A3000 Nexus,
which seems not to work).
2001-05-26 21:47:09 +00:00
matt 24f26c957e Add TCP_MD5SIGNATURE option. 2001-05-26 21:40:55 +00:00
chs c90ead639a regen. 2001-05-26 21:34:04 +00:00
chs 07cabef8a2 replace vm_page_t with struct vm_page *. 2001-05-26 21:33:11 +00:00
minoura 423279efd8 Honor rtc_offset. 2001-05-26 21:32:30 +00:00
ragge 7952ffd61f defined(vax) -> defined(__vax__). This may fix PR#12919. 2001-05-26 21:29:45 +00:00
chs 11a9651c8f replace vm_page_t with struct vm_page *. 2001-05-26 21:27:10 +00:00
ragge 474bc8ee6d Remove one #ifdef vax, bugfix another. Should probably be #ifdef i386 also. 2001-05-26 21:27:09 +00:00
chs e44e9dec8a replace vm_page_t with struct vm_page *. 2001-05-26 21:27:02 +00:00
ragge 41faed1386 Use cdev_decl() instead of local prototyping. 2001-05-26 21:24:38 +00:00
bjh21 6d8a82ebc2 Use bus_space on arm26.
Update the comment to match list of bus_space-using ports.
Delete oak from list of drivers that need converting.
2001-05-26 20:55:48 +00:00
bjh21 ab0637016a Support NCR5380_USE_BUS_SPACE.
Add comments explaining the card a bit (and how badly we support it).
Add in-core RCSID.
2001-05-26 20:53:53 +00:00
marcus e90e316b11 Changed maple device to attach per function instead of per unit.
Raw maple unit access is now possible through /dev/maple*.
2001-05-26 19:04:39 +00:00
chs 772a964bef fix typo. 2001-05-26 18:16:01 +00:00
bjh21 bab53421c4 "oak" is now MI. 2001-05-26 17:50:30 +00:00
bjh21 c7a388d937 Turn "oak" into an MI podulebus driver. Tested on my new A310. 2001-05-26 17:49:46 +00:00
bjh21 f0ebb6c5a8 Add a comment about acemidi. 2001-05-26 17:47:45 +00:00
sommerfeld bdecf91bef Add infrastructure to allow ports to override build of in6_cksum.c by
enabling the INET6_MD_CKSUM option, which is defopted into opt_inet.h.
Supply an i386 assembly version of in6_cksum in in_cksum.s; on
P6-family cpu's, this is is roughly 20% faster than the C code in
sys/netinet6 for ethernet-mtu-sized mbufs in L1 cache.  Turn on
INET6_MD_CKSUM in i386/conf/std.i386

While we're here, also nuke some now-obsolete XXX comments from
in_cksum.s.
2001-05-26 17:46:11 +00:00
chs 118ddca24a replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}. 2001-05-26 16:32:40 +00:00
bjh21 e4e4a4a982 Fix "Unknown or missing variable at line 3210". I'm sure this isn't the first
time I've fixed this bug.
2001-05-26 15:58:26 +00:00
pk e95e804c2f Pull in "opt_kgdb.h"; see PR#13036. 2001-05-26 10:22:32 +00:00
tsutsui 2a70c2afdd Fix pte_size values changed by my misunderstanding in the previous. 2001-05-25 23:57:06 +00:00
sommerfeld e2a08caf68 Replicate pte unmap change from i386 pmap.c
(fix kern/12554 workaround).
2001-05-25 23:34:44 +00:00
mjacob c9de53f96e Create a kernel thread for Fibre Channel cards. This is the new
way of doing business- modulo some startup spasms and peculiarities
of the way kthreads are started (*after* configuration, weird) and
some strangeness with the freeze/thaw code, what now happens is
that any of Loop Down, LIP, Loop Reset or Port Datbase or Name
Server Database Changed ASYNC events cause the queues to freeze
for this channel.  The arrival of a Loop UP is not relevant.

What *is* relevant is that the Port Datbase or Name Server Changed
async event indicate that it's okay to go and (re)evaluate the
state of the FC link and (re)probe local loop and fabric membership.
We have a kthread do this because it's *sooooo* much nicer to be
able to sleep while doing the 130-250 mailbox commands it'll take
to re-evaluate things.

When the state is well known again, we can unfreeze the channel
queues.  Then, as commands start arriving, we simply can start them
or bounce them with XS_SELTIMEOUT (if the device in question has
gone away).  Previously, we did lazy evaluation, which meant that
if a change occurred, we would wait until the very *next* command
to go rebuild stuff.

The reason this is not sensible is:

 a) Even with sleeping, you can hang up your system because you might be
 making some poor stat(2) call pay the price of re-evaluating the whole
 fabric.

 b) If we ever really want to get to dynamic attachment/detachment, we
 should find out sooner, rather than later, where things get to.

Split off ispminphys_1020 from ispminphys- a 1020 has a 24 bit limit-
not anything newer.

Re-enable LIPs and Loop Resets as async events- this allows the outer
layer to set policy about them.

Roll platform major && minor. Remove bogus waitq (no longer used).
Remove callout entry in softc (no longer used). Define some shorthands
for channels. Clean up a variety of cruft left over from the
thorpej_scsipi changeover.
2001-05-25 21:45:55 +00:00
tshiozak 5b51f5ebe2 fix forgotten/malformed initialization of some variables.
(pointed out by Krister Walfridsson.)
2001-05-25 19:33:36 +00:00
hannken 339a9c8de2 Fix two typos in the BYTE_ORDER != LITTLE_ENDIAN case. 2001-05-25 08:54:40 +00:00
oki 0cc97f1b55 Fixed panic on the cpu made by unknown vendor,
such as Transmeta Crusoe.
2001-05-25 04:39:33 +00:00
chs 3845302904 remove trailing whitespace. 2001-05-25 04:06:11 +00:00
kristerw 7ae7504033 Added a 'break' on the last line in a switch statement, since the ISO
C standard do not permit labels at the end of compound statements.
2001-05-24 10:49:31 +00:00