summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2009-11-22 19:20:29 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2009-11-22 19:20:29 +0100
commit90f24e5b34c67a98b632d5fbd597635b790090da (patch)
treed55cded15e445b2e59799be0ae65b71c064f6427
parent9ff49d9648debffbe42d18863c739d37bcdb50b4 (diff)
Rename kd_atoi into mach_atoi
* i386/i386at/kd.c: Include <util/atoi.h> (DEFAULT): Remove, replaced by MACH_ATOI_DEFAULT. (kd_parserest): Use mach_atoi instead of kd_atoi and MACH_ATOI_DEFAULT instead of DEFAULT. (kd_atoi): Move and rename function to... * util/atoi.c: ... mach_atoi in new file. * i386/i386at/kd.h (kd_atoi): Move and rename declaration to... * util/atoi.h: ... mach_atoi in new file. * Makefrag.am (libkernel_a_SOURCES): Add util/atoi.c
-rw-r--r--Makefrag.am3
-rw-r--r--i386/i386at/kd.c78
-rw-r--r--i386/i386at/kd.h1
-rw-r--r--util/atoi.c108
-rw-r--r--util/atoi.h67
5 files changed, 200 insertions, 57 deletions
diff --git a/Makefrag.am b/Makefrag.am
index c33a3785..bf5b5934 100644
--- a/Makefrag.am
+++ b/Makefrag.am
@@ -207,7 +207,8 @@ EXTRA_DIST += \
libkernel_a_SOURCES += \
util/putchar.c \
- util/puts.c
+ util/puts.c \
+ util/atoi.c
#
# Virtual memory implementation.
diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c
index 62090311..ad155953 100644
--- a/i386/i386at/kd.c
+++ b/i386/i386at/kd.c
@@ -95,11 +95,10 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <i386at/kd_mouse.h>
#include <i386at/kdsoft.h>
#include <device/cons.h>
+#include <util/atoi.h>
#define DEBUG 1 /* export feep() */
-#define DEFAULT -1 /* see kd_atoi */
-
void kd_enqsc(); /* enqueues a scancode */
#if 0
@@ -1505,17 +1504,17 @@ u_char *cp;
csrpos_t newpos;
for(i=0;i<=15;i++)
- number[i] = DEFAULT;
+ number[i] = MACH_ATOI_DEFAULT;
do {
- cp += kd_atoi(cp, &number[npar]);
+ cp += mach_atoi(cp, &number[npar]);
} while (*cp == ';' && ++npar <= 15 && cp++);
switch(*cp) {
case 'm':
for (i=0;i<=npar;i++)
switch(number[i]) {
- case DEFAULT:
+ case MACH_ATOI_DEFAULT:
case 0:
kd_attrflags = 0;
kd_color = KA_NORMAL;
@@ -1575,14 +1574,14 @@ u_char *cp;
esc_spt = esc_seq;
break;
case '@':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_insch(1);
else
kd_insch(number[0]);
esc_spt = esc_seq;
break;
case 'A':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_up();
else
while (number[0]--)
@@ -1590,7 +1589,7 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'B':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_down();
else
while (number[0]--)
@@ -1598,7 +1597,7 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'C':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_right();
else
while (number[0]--)
@@ -1606,7 +1605,7 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'D':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_left();
else
while (number[0]--)
@@ -1615,7 +1614,7 @@ u_char *cp;
break;
case 'E':
kd_cr();
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_down();
else
while (number[0]--)
@@ -1624,7 +1623,7 @@ u_char *cp;
break;
case 'F':
kd_cr();
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_up();
else
while (number[0]--)
@@ -1632,7 +1631,7 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'G':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
number[0] = 0;
else
if (number[0] > 0)
@@ -1642,18 +1641,18 @@ u_char *cp;
break;
case 'f':
case 'H':
- if (number[0] == DEFAULT && number[1] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT && number[1] == MACH_ATOI_DEFAULT)
{
kd_home();
esc_spt = esc_seq;
break;
}
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
number[0] = 0;
else if (number[0] > 0)
--number[0]; /* numbered from 1 */
newpos = (number[0] * ONE_LINE); /* setup row */
- if (number[1] == DEFAULT)
+ if (number[1] == MACH_ATOI_DEFAULT)
number[1] = 0;
else if (number[1] > 0)
number[1]--;
@@ -1667,7 +1666,7 @@ u_char *cp;
break; /* done or not ready */
case 'J':
switch(number[0]) {
- case DEFAULT:
+ case MACH_ATOI_DEFAULT:
case 0:
kd_cltobcur(); /* clears from current
pos to bottom.
@@ -1688,7 +1687,7 @@ u_char *cp;
break;
case 'K':
switch(number[0]) {
- case DEFAULT:
+ case MACH_ATOI_DEFAULT:
case 0:
kd_cltoecur(); /* clears from current
pos to eoln.
@@ -1709,28 +1708,28 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'L':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_insln(1);
else
kd_insln(number[0]);
esc_spt = esc_seq;
break;
case 'M':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_delln(1);
else
kd_delln(number[0]);
esc_spt = esc_seq;
break;
case 'P':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_delch(1);
else
kd_delch(number[0]);
esc_spt = esc_seq;
break;
case 'S':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_scrollup();
else
while (number[0]--)
@@ -1738,7 +1737,7 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'T':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_scrolldn();
else
while (number[0]--)
@@ -1746,7 +1745,7 @@ u_char *cp;
esc_spt = esc_seq;
break;
case 'X':
- if (number[0] == DEFAULT)
+ if (number[0] == MACH_ATOI_DEFAULT)
kd_erase(1);
else
kd_erase(number[0]);
@@ -1762,37 +1761,6 @@ u_char *cp;
return;
}
-/*
- * kd_atoi:
- *
- * This function converts an ascii string into an integer, and
- * returns DEFAULT if no integer was found. Note that this is why
- * we don't use the regular atio(), because ZERO is ZERO and not
- * the DEFAULT in all cases.
- *
- * input : string
- * output : a number or possibly DEFAULT, and the count of characters
- * consumed by the conversion
- *
- */
-int
-kd_atoi(cp, nump)
-u_char *cp;
-int *nump;
-{
- int number;
- u_char *original;
-
- original = cp;
- for (number = 0; ('0' <= *cp) && (*cp <= '9'); cp++)
- number = (number * 10) + (*cp - '0');
- if (original == cp)
- *nump = DEFAULT;
- else
- *nump = number;
- return(cp - original);
-}
-
void
kd_tab()
{
diff --git a/i386/i386at/kd.h b/i386/i386at/kd.h
index a6036d79..9048ce50 100644
--- a/i386/i386at/kd.h
+++ b/i386/i386at/kd.h
@@ -708,7 +708,6 @@ extern void kd_scrollup (void);
extern void kd_scrolldn (void);
extern void kd_cls (void);
extern void kd_home (void);
-extern int kd_atoi (u_char *, int *);
extern void kd_insch (int number);
extern void kd_cltobcur (void);
extern void kd_cltopcur (void);
diff --git a/util/atoi.c b/util/atoi.c
new file mode 100644
index 00000000..64816b9d
--- /dev/null
+++ b/util/atoi.c
@@ -0,0 +1,108 @@
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
+ * School of Computer Science
+ * Carnegie Mellon University
+ * Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/*
+ * Olivetti Mach Console driver v0.0
+ * Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989
+ * All rights reserved.
+ *
+ */
+/*
+ Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc.,
+Cupertino, California.
+
+ All Rights Reserved
+
+ Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appears in all
+copies and that both the copyright notice and this permission notice
+appear in supporting documentation, and that the name of Olivetti
+not be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+
+ OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/*
+ Copyright 1988, 1989 by Intel Corporation, Santa Clara, California.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appears in all
+copies and that both the copyright notice and this permission notice
+appear in supporting documentation, and that the name of Intel
+not be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+
+INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+#include <util/atoi.h>
+
+/*
+ * mach_atoi:
+ *
+ * This function converts an ascii string into an integer, and returns
+ * MACH_ATOI_DEFAULT if no integer was found. Note that this is why we
+ * don't use the regular atio(), because ZERO is ZERO and not the
+ * MACH_ATOI_DEFAULT in all cases.
+ *
+ * input : string
+ * output : a number or possibly MACH_ATOI_DEFAULT, and the count of
+ * characters consumed by the conversion
+ *
+ */
+int
+mach_atoi(cp, nump)
+u_char *cp;
+int *nump;
+{
+ int number;
+ u_char *original;
+
+ original = cp;
+ for (number = 0; ('0' <= *cp) && (*cp <= '9'); cp++)
+ number = (number * 10) + (*cp - '0');
+ if (original == cp)
+ *nump = MACH_ATOI_DEFAULT;
+ else
+ *nump = number;
+ return(cp - original);
+}
diff --git a/util/atoi.h b/util/atoi.h
new file mode 100644
index 00000000..921b1e81
--- /dev/null
+++ b/util/atoi.h
@@ -0,0 +1,67 @@
+/*
+ * Mach Operating System
+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
+ * School of Computer Science
+ * Carnegie Mellon University
+ * Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+/* **********************************************************************
+ File: atoi.h
+ Description: definitions for mach_atoi
+ Authors: Eugene Kuerner, Adrienne Jardetzky, Mike Kupfer
+
+ $ Header: $
+
+ Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989.
+ All rights reserved.
+********************************************************************** */
+/*
+ Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc.,
+Cupertino, California.
+
+ All Rights Reserved
+
+ Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appears in all
+copies and that both the copyright notice and this permission notice
+appear in supporting documentation, and that the name of Olivetti
+not be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+
+ OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+#ifndef _UTIL_ATOI_H_
+#define _UTIL_ATOI_H_
+
+#include <sys/types.h>
+
+#define MACH_ATOI_DEFAULT -1
+extern int mach_atoi (u_char *, int *);
+
+#endif /* _UTIL_ATOI_H_ */