Commit Graph

1763 Commits

Author SHA1 Message Date
cgd 2680a043c7 general cleanup (get close to KNF), and remove a few fuzzies
in preparation for The Grand Re-rewriting.
1993-07-28 04:08:27 +00:00
cgd 7b2afa7fe6 incorporate changes from 0-9-base to 0-9-ALPHA 1993-07-28 02:20:34 +00:00
ws 96ec00e106 Use all of freebufspace 1993-07-24 22:09:50 +00:00
mycroft 6a12d4b9b2 Clean up deleted files. 1993-07-19 16:39:09 +00:00
cgd 9bd082f70e replace jolitz's vfs__bio with a better one from CMU via mw.
so, replace vfs__bio, and deal with attendant changes.
1993-07-19 16:38:35 +00:00
cgd 57ee917973 allocate out of kmem_map, not buffer_map. buffer_map is for
*buffers*...  hopefully this won't fragment kmem_map too much.
it should probably be put into its own map, but doesn't need to be
right now.
1993-07-19 09:57:22 +00:00
mycroft 7aecc812a5 Move flushq() macro into tty.h. 1993-07-19 05:52:27 +00:00
mycroft 69fdebd9fa Make sure there are character in the ring before flushing. 1993-07-19 05:49:13 +00:00
mycroft ec99160f49 Use flushq() macro instead. 1993-07-19 05:48:01 +00:00
mycroft b8756ae04c Use ndflush(), not while(getc()). 1993-07-19 05:10:30 +00:00
andrew 5dbe2d9d5b * don't used copyout() to relocate icode - use bcopy() instead 1993-07-18 08:17:36 +00:00
mycroft 23b68e4c79 Clean up deleted files. 1993-07-18 07:21:13 +00:00
mycroft a2587ffb83 Nuke a kluge from Net/2. The argument list ocreat() creates for open() can
now be a struct open_args; no need to redefine the structure.
1993-07-18 06:28:01 +00:00
mycroft 41b40c6792 Only declare these variables extern in buf.h; define them only once in
vfs__bio.c.
1993-07-18 05:15:25 +00:00
mycroft 331148c31a Make these files GCC 2 happy. 1993-07-17 16:20:24 +00:00
mycroft 97cae397ee Finish moving struct definitions outside of function declarations. 1993-07-17 15:24:33 +00:00
cgd 9c0456d7d7 gcc2 cleanup, and break args out of procedure def'ns 1993-07-15 22:56:23 +00:00
cgd 082beb9cc0 make args & locals of select unsigned where appropriate. 1993-07-15 22:26:11 +00:00
brezak 74f0cb89c9 Add 'ps' command. Add -more- pager to output from Mach ddb. 1993-07-15 18:36:32 +00:00
cgd 5287574e0a get rid of bogus retrymalloc code (and it was bogus)... 1993-07-15 13:33:23 +00:00
cgd c0334ef92c break args structs out, into syscallname_args structs, so gcc2 doesn't
whine so much.
1993-07-13 22:13:15 +00:00
mycroft 7ef782c7d7 Clean up deleted files. 1993-07-12 11:36:21 +00:00
mycroft 41b03a4a6e Change tty code to use clist interface, but with ring buffer implementation.
Also, fix a couple of bugs in tty.c and pccons.c, and some gross kluginess
in the hp300 stuff.
1993-07-12 11:33:54 +00:00
mycroft bfc1b68bb5 Change tty code to use clist interface, but with ring buffer implementation.
Also, fix a couple of bugs in tty.c and pccons.c, and some gross kluginess
in the hp300 stuff.
1993-07-12 11:16:07 +00:00
cgd daacc668f9 re-add two changes which had been deleted by commit of r1.7 1993-07-11 07:22:52 +00:00
cgd 5a84b475d6 handle the initflags problem in a simple (if twisted) way.
also, remind the pagedaemon that it's a daemon, not an r...  8-)
1993-07-10 03:25:03 +00:00
mycroft 842b58edb5 Change the names of processes 0 and 2. 1993-07-10 02:48:57 +00:00
brezak b5236e7d0f Roundup stack len to naturally aligned address. This fixes emacs aborting due to an odd address in alloca'ed memory. 1993-07-10 02:07:48 +00:00
mycroft 1c33fddc0b Oops. 1993-07-08 22:53:05 +00:00
brezak 31d24dc82e Ignore the flags field in midmag. 1993-07-08 16:48:18 +00:00
cgd 98bb5ccd73 if mincnt returns 0 (i.e. off end of disk, or something), punt. 1993-07-08 10:53:40 +00:00
cgd 0ffdd71a7e mark the buffer busy immediately when we acquire it,
also, sleep at a slightly higher priority (so says mw...)
1993-07-08 10:29:26 +00:00
cgd 8f29c4b498 specification of mountroot now handled by config 1993-07-07 10:55:00 +00:00
cgd 06d372686f revert code base back to net/2. in particular,
fix jolitz's trapsignal() change (it's only supposed to work on curproc)
and add a panic if called w/something other than curproc, and also
fix a relic of his crappy exec implementation
1993-07-07 08:12:33 +00:00
mycroft 38e4cf5f34 Clean up deleted files. 1993-07-07 06:03:57 +00:00
cgd 419b16b0f6 add rcsid, and get rid of extraneous debugging printf 1993-07-07 06:00:15 +00:00
cgd ac8fe993ef add rmap routines written by Wolfgang Solfrank to the tree,
so that they can be used to (eventually) replace rlists.
1993-07-06 00:25:26 +00:00
cgd b274bb4126 add support for checking entry against max user address 1993-07-05 01:53:56 +00:00
cgd 955ae6a915 change exit() to kexit(), so prototypes are "safe" with stdio.h, etc. 1993-07-04 23:30:33 +00:00
cgd b21025e4f3 call setregs with a retval, too, so the hp300 & mac, and more works. 1993-07-04 09:48:29 +00:00
cgd 2f1182cf07 biodone returns void... 1993-07-04 04:01:38 +00:00
cgd 1fd0e7e71f shminit has void return type. 1993-07-04 03:59:55 +00:00
mycroft c5fdaf369a Blasted ftpd! 1993-07-02 03:11:11 +00:00
mycroft 50974047ed Fix bugs in rb_write and rb_cwrite, and make tab handling use rb_cwrite. 1993-07-02 03:04:51 +00:00
mycroft c414ffef06 Fix a situation where we might forget to splx(). 1993-07-01 00:22:10 +00:00
mycroft 789d3e468d Fix broken prototype. 1993-06-30 13:43:03 +00:00
andrew 09ff7fc9f4 #endif was somehow missing from the end of a DDB conditional! 1993-06-27 06:22:32 +00:00
andrew 3e701a1438 * ansifications
* Yuval Yarom's socket recv(2) fixes - access rights problems (see also
  uipc_socket.c).
1993-06-27 06:08:40 +00:00
andrew d46fb2c3fb * ansifications
* Yuval Yarom's socket recv(2) fixes, to prevent incorrect blocking and
  lack thereof with recv(2) and MSG_WAITALL.  Fixes a sbdrop() panic during
  some MSG_WAITALL recv(2) sleeps.  Access rights fix (also in
  uipc_syscalls.c) too.  A test program which shows these problems is
  available.
1993-06-27 06:08:15 +00:00
andrew 6535028529 * ansifications
* fixed the arguments given to the line discipline l_open function in
  ptsopen()
* should ptsstart() return 1 if (tp->t_state & TS_TTSTOP)?
1993-06-27 06:06:47 +00:00
andrew 4d08b29158 * ansifications
* question about whether the "tp->t_state |= TS_ISOPEN" in ttyopen() should
  be shifted to the end of the block in which it appears.
1993-06-27 06:06:14 +00:00
andrew f74843ee98 * ansifications
* cleaned up hardclock() to avoid checking "p" multiple times, and avoid a
  gcc2 possible-use-before-initialisation warning.
* changed softclock() timeout callback functions to be of type timeout_t -
  a pointer to a void fn(int).  No-one was using the second, tick, argument
  that was being passed to these callbacks - it is much cleaner to drop the
  thing entirely, rather than add a whole heap of casts of dubious
  correctness to calls to timeout(), etc.  The old style is kept in an
  #ifdef, for future reference.
1993-06-27 06:05:32 +00:00
andrew 0e6cb953ea ANSIfications - removed all implicit function return types and argument
definitions.  Ensured that all files include "systm.h" to gain access to
general prototypes.  Casts where necessary.
1993-06-27 06:01:27 +00:00
glass c34ec14c78 another NDDB -> DDB change. why did DDB invade kern/*? 1993-06-27 01:05:56 +00:00
mycroft 0ee0a87c29 Fix uninitialized variable. 1993-06-24 21:34:54 +00:00
cgd b2285d45d0 special case raw disk handling return values 1993-06-22 05:19:14 +00:00
glass b7545aa929 fixing more ansi-style function definitions... 1993-06-22 02:33:21 +00:00
glass ac6d9dc22e more damn ansi function declarations. damn you chris.... 1993-06-22 01:59:39 +00:00
glass ee8d969be4 ansi-style function definitions 1993-06-22 01:31:53 +00:00
deraadt 1ca1339919 > NetBSD 0.8a (TDR) #2: Mon Jun 21 11:06:03 MDT 1993
produces "uname -v" output "TDR#2"
"uname -a"  then is..
> NetBSD gecko 0.8a TDR#2 i386
1993-06-21 02:06:10 +00:00
andrew 4c0169f317 Fixed ECHONL. 1993-06-20 04:52:53 +00:00
cgd c8bdad0560 convert magic numbers to network byte order, and attendent changes 1993-06-18 06:49:30 +00:00
brezak ce4562fd4b Find version number for uname. 1993-06-18 02:11:20 +00:00
mycroft 9ef827c1e0 Clean up deleted files. 1993-06-16 22:06:45 +00:00
cgd 0dde03704d use/add new physio... 1993-06-16 22:06:33 +00:00
cgd 9751bf77a7 include the (stupid and ugly) patch for the i386 interrupt stuff.
it seems to help stability, when included.
1993-06-15 01:28:29 +00:00
cgd 53eb1ac38c a few changes to select. most notable: don't sleep forever unless
user actually wants to.  (it could happen in strange circumstances...)
1993-06-14 05:11:58 +00:00
mycroft 85387a3dea Believe it or not, selrecord() was broken... 1993-06-13 07:39:32 +00:00
cgd 4d785d18cc handle jolitz physio bug which i mentioned in mail;
if you malloc, and get nothing back, panic.
this is totally done wrong, anyway.
1993-06-12 19:54:35 +00:00
andrew d790308a20 Yuval Yarom's 'panic:closef: count < 0' fix to unp_discard(). 1993-06-12 14:01:23 +00:00
brezak 224ca11730 Leave a hole for AFS 1993-06-10 16:25:01 +00:00
cgd b907fbcbb9 add preliminary support for devfs (e.g. MOUNT_DEVFS #define, etc.) 1993-06-10 01:02:59 +00:00
cgd 77e24b59b2 allow modules to be loaded only if device is open for writing 1993-06-07 23:10:09 +00:00
cgd 57d3a6d525 add support for terry lambert's loadable kernel modules.
needs a bit of cleanup, but overall: SLICK!
1993-06-07 19:51:59 +00:00
cgd 24fe3e4563 fixed bug where extra spaces at the end of a shell name would
cause shell scripts to be executed incorrectly.  shells would
receive an *empty* arg for name of script, open it, the kernel
would say "oh, that's ." or something similar, and the results
would be interesting...  found, diagnosed, and killed by me.
1993-06-07 03:09:29 +00:00
cgd f1b8c74730 make getc() and ungetc() be rb{un,}getc(), so getc() and ungetc()
don't conflict w/ansi prototypes...
1993-06-06 23:04:42 +00:00
cgd f17f8f678b make strlen return a size_t 1993-06-06 03:35:39 +00:00
cgd 7489eff03c fix stoopid location to label problem 1993-06-06 02:36:22 +00:00
cgd f67174d697 patch from David Greenman and Rod Grimes (davidg@implode.rain.com and
rgrimes@agora.rain.com) to support 57600 and 115200 baud
1993-06-05 22:40:40 +00:00
cgd 165b917efe add fixes supplied by markus wild 1993-06-05 19:38:13 +00:00
cgd 23f01c5982 call a cpu-dependent function to check executable's a_mid type. 1993-06-03 01:31:43 +00:00
cgd dccfb7e206 make strcpy "normal" and get rid of extra (random) spacing... 1993-06-02 23:47:23 +00:00
cgd 462e59fb61 two fixes from ws:
if resource cur/max limits hosed, fix
	copy the correct amount from the rusage struct
1993-06-02 23:46:28 +00:00
cgd d6e1f01ad4 nextpid & maxproc fixes from ws 1993-06-02 23:10:52 +00:00
cgd c26bdfdb86 kill processes outright if they've exceeded their hard CPU limit. 1993-06-02 23:03:45 +00:00
cgd 654e213804 when copying out signal trampoline code, make sure that
the copyout actually succeeds.
1993-06-02 04:43:54 +00:00
cgd d2bf51450c fixed minor typo in sigcode copying code 1993-06-02 03:15:36 +00:00
cgd af4017c23f general cleanup including, but not limited to:
better-integreate vmcmd building and exec hdr interpretation,
	get stack sigcode copying right
	etc.
1993-06-02 02:49:40 +00:00
cgd 956c046db5 do address mapping in a new way...
it works, but the code needs to be cleaned some...
1993-06-02 00:20:07 +00:00
cgd 4206d7f100 break before letting child run, if tracing, and do the right
thing with stack limits
1993-06-01 04:52:40 +00:00
cgd 0656a4bbbe final patchups, also add support for finding argv/env via PS_STRINGS 1993-06-01 01:31:39 +00:00
mycroft 2be76c2f59 Clean up deleted files. 1993-05-31 01:44:57 +00:00
cgd eb4c4de385 replace exec.
new one based on one by Wolfgang Solfrank, but majorly hacked
(as it: it didn't have a chance in hell of working, before; didn't
even bother copying out argc, for one...)
1993-05-31 01:44:55 +00:00
cgd 2b422f4029 have setregs copy the stack pointer, too 1993-05-30 18:52:39 +00:00
cgd 7cef199976 make the sleeps on socket open interruptable. 1993-05-27 15:38:18 +00:00
deraadt ada4945e6b patches to make kernel malloc() retryable. from <MDICKSON@CSI.compuserve.com> 1993-05-27 14:34:29 +00:00
deraadt b671aede02 slight functionality change to make the rbpack() and
rbunpack() code that I wrote before work cleaner. Many old drivers
call nnn = q_to_b(queue, buf, len), where nnn gets set to len.
for those who are porting:
	q_to_b(queue, buf, len) --> rbunpack(queue, buf, len)
	b_to_q(buf, queue, len) --> rbpack(buf, queue, len)
ie. they are essentialy drop in replacements now.
1993-05-27 09:29:40 +00:00
deraadt 2f0c0eb674 tty dynamic allocation 1993-05-26 10:06:41 +00:00
cgd a8a67cbfaf fix dependencies on M_LAST's old off-by-one error...
(arguably, the old error wasn't an error, but, given some
of the old usage of M_LAST and its name, i say it was)
1993-05-25 18:04:17 +00:00
cgd 44dcf397e8 move sipcreg into i386/include/reg.h where it belongs, right next to ipcreg. 1993-05-24 11:37:12 +00:00
cgd fe1802950b add include of select.h if necessary for protos, or delete if extraneous 1993-05-22 11:40:42 +00:00
deraadt 6fb28b3c74 more disklabel changes 1993-05-20 23:12:53 +00:00
cgd 4be87870bf the id strings are now made immutable by rcs. 1993-05-20 16:20:12 +00:00
cgd 9b611f165b do something better with version strings for created files,
also inclusion protect syscall.h
1993-05-20 16:17:38 +00:00
cgd cdcb81b16e hack on the uname "machine name" stuff for hopefully the last time.
now it uses MACHINE, as defined in param.h
1993-05-20 15:36:20 +00:00
cgd b95f963973 add rcs ids, and clean up headers where necessary 1993-05-20 03:53:21 +00:00
cgd 48e0fa217b fix for new syscalls.master versioning 1993-05-20 02:59:55 +00:00
cgd 342129da5d kill the "chmod 444" of the syscall-dependent files. makes running
makesyscalls.sh again somewhat more difficult than necessary, sometimes.
1993-05-20 02:57:57 +00:00
cgd 230dcf0d05 add $Id$ strings, and clean up file headers where necessary 1993-05-20 02:54:09 +00:00
cgd 99a13fab8d make uname stuff in init_main machine independent 1993-05-20 02:05:39 +00:00
cgd 8d6c77881c make kernel select interface be one-stop shopping & clean it all up. 1993-05-18 18:18:40 +00:00
cgd 23af7ea092 clean up comment/rcsid... 1993-05-18 15:38:35 +00:00
cgd f9350c73f0 getpgrp actually takes void. ask the IEEE... 1993-05-16 01:51:51 +00:00
deraadt 5760558f80 various 8-bit patches from Andrew Chernov <ache@astral.msk.su>
tty_compat.c is cleaned up, as is STOP+TIOCSTI in tty.c
1993-05-13 20:58:26 +00:00
cgd 37b890c63c from Luke Mewburn <zak@rmit.edu.au>:
add TIOCSTAT ioctl to give load average stats if requested (for tcsh)
1993-05-13 06:42:56 +00:00
cgd 62781e28ba fix kernel printf %b format.
from Gordon Burditt <gordon@sneaky.lonestar.org>
1993-05-13 06:17:51 +00:00
deraadt 64f341ec2a ring buffer now uses rbchar's (shorts) instead of chars. 1993-05-10 23:15:37 +00:00
cgd e9be58fa40 add dcfclock support from patchkit patch 113 1993-05-07 07:15:19 +00:00
cgd e27c0ba7bc update for bde's useracc changes. from patchkit patch 137. 1993-05-07 07:06:42 +00:00
cgd 7fb852403d fix uname initialization 1993-05-07 04:09:18 +00:00
cgd c5d886aff7 diffs for uname (posix!) system call, provided by John Brezak <brezak@osf.org> 1993-05-06 10:46:12 +00:00
cgd e811352a74 oops, forgot a c! 1993-05-04 05:48:17 +00:00
cgd 501ba00c04 fix accidental 2dd, and fix comm handling for debug 1993-05-03 02:49:27 +00:00
cgd a70911f1aa add starting, elapsed, user, and system times, and clean up a bit 1993-05-02 20:40:31 +00:00
cgd bd05104f48 add barebones accounting, enabled w/"options ACCOUNTING", via /dev/acct 1993-05-02 09:22:31 +00:00
mycroft 58f76c7974 Clean up deleted files. 1993-05-02 09:14:24 +00:00
cgd a823bc627d fix other half of the text file busy problem:
don't allow user to exec a file if it's open for writing
1993-04-29 10:12:42 +00:00
cgd c94345dd9a JOLITZ MANGLED MY PROFILING PATCH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
get the i386 profiling assembly in the right ifdef...
1993-04-29 05:38:52 +00:00
mycroft c6be5fba43 Give processes 0 and 2 more appropriate names (`scheduler' and `swapper', respectively). 1993-04-28 04:19:25 +00:00
mycroft bd4084637f Add rb_read, to read part of a ring buffer into an ordinary buffer. 1993-04-22 07:49:18 +00:00
mycroft e76bede1e3 Don't try to copy in from NULL pointer. 1993-04-19 12:42:39 +00:00
mycroft 24b644ac3d Map QMAGIC execs at correct address. 1993-04-18 07:34:34 +00:00
mycroft f7450657ec Allow argument to `#!' (i.e. `#!/bin/foo -argument'). 1993-04-17 08:07:03 +00:00
mycroft aabb2e137e Add proper cast. 1993-04-17 01:38:51 +00:00
glass ed4a9f1a3c i hate NDDB...... 1993-04-15 07:15:25 +00:00
sef 9c736c1dcf Added QMAGIC, which is a "compact demand load" format: first page is
unmapped, and the a.out header is inside the text section.
1993-04-15 05:48:22 +00:00
cgd a434508e6d version's not supposed to be printed here; it's supposed to be printed
in machdep.c
1993-04-10 20:46:16 +00:00
glass 550b9e0bef forgot to update syscalls.master. the makesyscalls.sh generated stuff
is now updated
1993-04-10 20:27:10 +00:00
glass ff2c06d490 fixed '#ifdef NFS' appropriately. 1993-04-10 20:18:57 +00:00
glass 034707f9e5 fixed to be compliant, subservient, and to take advantage of the newly
hacked config(8)
1993-04-10 12:04:35 +00:00
cgd 5cc382fc66 add support for PCFS, the MSDOS filesystem.
written by Paul Popelka (paulp@uts.amdahl.com) (patch 129)

invoke w/"options PCFS" in kernel config file.
1993-04-09 19:37:49 +00:00
cgd a128c34f9c From: Guido van Rooij <guido@gvr.win.tue.nl>
when mmapping a file, permissions are checked as it should be. When
mprotect()-ing the address range afterwards, no protection was checked
regarding the protection of the file originally opened. So
when you open /usr/bin/su RDONLY and SHARED you could afterwards change
the mmapped region to READ|WRITE. This gave the possibility to obtain
root privs obviously.
1993-04-09 17:16:30 +00:00
cgd 5b67f9cea5 changed order of copyright/version notice (to match 4.4 boot string)... 1993-04-06 14:23:00 +00:00
glass 8d58080ba3 used by makesyscalls.sh to produce init_sysent.c, syscalls.c ../sys/syscall.h
edit this to add/delete/ifdef system calls
1993-04-06 10:39:51 +00:00
glass 2a0fbbf7d6 added 'makesyscalls.sh' from BNR/2. Edit only 'syscalls.master'
recreates init_sysent.c syscalls.c ../sys/syscall.h which should
then be checked back in.
1993-04-06 10:37:09 +00:00
cgd e9e7ae8a6e now uses `maxfdescs' to bound `openfiles' resource limit. 1993-04-04 04:32:14 +00:00
cgd 95d13869d1 got rid of accidental extra newline 1993-04-03 11:19:42 +00:00
cgd 5d07e08579 added changes from Steven Reiz <sreiz@aie.nl> (based on
those by Poul-Henning Kamp <phk@data.fls.dk>) to get the kernel
to compile properly when gcc2.* is cc.  (should still work
when gcc1.39 is in use.)
1993-04-03 02:15:18 +00:00
cgd fafe485efe change from make tinguely (tinguely@hookie.cs.ndsu.NoDak.edu) to make
opening running programs for writing return ETXTBUSY.
1993-04-03 01:56:45 +00:00
cgd a381c1fd17 now just prints out version. also, got rid of kernel_version,
and fixed wfj's trampling on UCB copyright notices.
1993-04-03 01:41:32 +00:00
deraadt 6efd5159e0 getdomainname fix. had to declare get/setdomainname() implicitly extern. 1993-04-02 20:38:22 +00:00
cgd b02974b037 Jay Fenlason <hack@datacube.com>:
1: the fi_readers and fi_writers fields of the fifoinfo structure were not
being initialized to 0.  This caused the driver to not sleep the first
process to open the fifo--it thought there was already another process to
talk to (most of the time.)

2: fifo_open() was calling tsleep() without unlocking the inode of the fifo
file.  This caused *any* subsequent access to the file (even an ls (!)) to
hang forever.  Note that this bug was usually masked by bug #1 above.
1993-04-02 20:19:48 +00:00
deraadt 355265a866 added: the entire domainanme set. domainmame(1), domainname(2), and a spiffy
man page.
1993-04-02 12:24:21 +00:00
cgd 942f89c21f if PANICWAIT defined, will always wait for a key press before reboot
after panic.  (note that this only makes a difference if DDB is not
installed.)
1993-03-28 08:40:33 +00:00
cgd edca1943a4 fixed typo (in a comment) 1993-03-26 23:40:42 +00:00
glass e0cd0652b6 removed unnecessary #ifdefing, fixed conf/files appropriately 1993-03-26 22:16:30 +00:00
cgd 8cfd6d23f2 changes made by David Greenman's (davidg@implode.rain.com) BPF package. 1993-03-24 23:55:29 +00:00
sef 0be333bc99 Oops. Inserted at the wrong place. 1993-03-24 20:22:51 +00:00
sef e4eea462cf Handle one-word cases in word-erase. 1993-03-24 19:41:48 +00:00
cgd 93156ce06e modified files to support kernfs and fdesc fs 1993-03-23 23:56:07 +00:00
cgd 690826b089 got rid of hightlighted test, and changed copyright/kernel version
string delcarations
1993-03-23 22:16:43 +00:00
cgd e541169ce2 after 0.2.2 "stable" patches applied 1993-03-21 18:04:42 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00