diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2009-11-22 19:20:29 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2009-11-22 19:20:29 +0100 |
commit | 90f24e5b34c67a98b632d5fbd597635b790090da (patch) | |
tree | d55cded15e445b2e59799be0ae65b71c064f6427 | |
parent | 9ff49d9648debffbe42d18863c739d37bcdb50b4 (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.am | 3 | ||||
-rw-r--r-- | i386/i386at/kd.c | 78 | ||||
-rw-r--r-- | i386/i386at/kd.h | 1 | ||||
-rw-r--r-- | util/atoi.c | 108 | ||||
-rw-r--r-- | util/atoi.h | 67 |
5 files changed, 200 insertions, 57 deletions
diff --git a/Makefrag.am b/Makefrag.am index c33a378..bf5b593 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 6209031..ad15595 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 a6036d7..9048ce5 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 0000000..64816b9 --- /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 0000000..921b1e8 --- /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_ */ |