diff options
author | Paul Durrant <paul.durrant@citrix.com> | 2011-11-30 06:50:45 -0800 |
---|---|---|
committer | Paul Durrant <paul.durrant@citrix.com> | 2011-11-30 06:50:45 -0800 |
commit | 7f1c7895760a624d2ed5371fa7493da9935f99ce (patch) | |
tree | e315860540210d98a5388ea40cd642658ff2c63e /tools/firmware | |
parent | 978cc62b401c2e1e1d379d389b0d427b85f200d8 (diff) | |
download | xen-7f1c7895760a624d2ed5371fa7493da9935f99ce.tar.gz xen-7f1c7895760a624d2ed5371fa7493da9935f99ce.tar.bz2 xen-7f1c7895760a624d2ed5371fa7493da9935f99ce.zip |
hvmloader: Add 'ctype' infrastructure
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/firmware')
-rw-r--r-- | tools/firmware/hvmloader/Makefile | 2 | ||||
-rw-r--r-- | tools/firmware/hvmloader/ctype.c | 27 | ||||
-rw-r--r-- | tools/firmware/hvmloader/ctype.h | 29 | ||||
-rw-r--r-- | tools/firmware/hvmloader/util.c | 1 | ||||
-rw-r--r-- | tools/firmware/hvmloader/util.h | 2 |
5 files changed, 58 insertions, 3 deletions
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 11e8f1c316..ec33155128 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -30,7 +30,7 @@ CFLAGS += $(CFLAGS_xeninclude) OBJS = hvmloader.o mp_tables.o util.o smbios.o OBJS += 32bitbios_support.o smp.o cacheattr.o xenbus.o -OBJS += e820.o pci.o pir.o +OBJS += e820.o pci.o pir.o ctype.o ifeq ($(debug),y) OBJS += tests.o endif diff --git a/tools/firmware/hvmloader/ctype.c b/tools/firmware/hvmloader/ctype.c new file mode 100644 index 0000000000..d36976208e --- /dev/null +++ b/tools/firmware/hvmloader/ctype.c @@ -0,0 +1,27 @@ +#include "ctype.h" + +const unsigned char _ctype[] = { +_C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */ +_C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C, /* 8-15 */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 16-23 */ +_C,_C,_C,_C,_C,_C,_C,_C, /* 24-31 */ +_S|_SP,_P,_P,_P,_P,_P,_P,_P, /* 32-39 */ +_P,_P,_P,_P,_P,_P,_P,_P, /* 40-47 */ +_D,_D,_D,_D,_D,_D,_D,_D, /* 48-55 */ +_D,_D,_P,_P,_P,_P,_P,_P, /* 56-63 */ +_P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U, /* 64-71 */ +_U,_U,_U,_U,_U,_U,_U,_U, /* 72-79 */ +_U,_U,_U,_U,_U,_U,_U,_U, /* 80-87 */ +_U,_U,_U,_P,_P,_P,_P,_P, /* 88-95 */ +_P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L, /* 96-103 */ +_L,_L,_L,_L,_L,_L,_L,_L, /* 104-111 */ +_L,_L,_L,_L,_L,_L,_L,_L, /* 112-119 */ +_L,_L,_L,_P,_P,_P,_P,_C, /* 120-127 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 128-143 */ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 144-159 */ +_S|_SP,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P, /* 160-175 */ +_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P, /* 176-191 */ +_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U, /* 192-207 */ +_U,_U,_U,_U,_U,_U,_U,_P,_U,_U,_U,_U,_U,_U,_U,_L, /* 208-223 */ +_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L, /* 224-239 */ +_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */ diff --git a/tools/firmware/hvmloader/ctype.h b/tools/firmware/hvmloader/ctype.h new file mode 100644 index 0000000000..3ff1bc9f3b --- /dev/null +++ b/tools/firmware/hvmloader/ctype.h @@ -0,0 +1,29 @@ +#ifndef __HVMLOADER_CTYPE_H__ +#define __HVMLOADER_CTYPE_H__ + +#define _U 0x01 /* upper */ +#define _L 0x02 /* lower */ +#define _D 0x04 /* digit */ +#define _C 0x08 /* cntrl */ +#define _P 0x10 /* punct */ +#define _S 0x20 /* white space (space/lf/tab) */ +#define _X 0x40 /* hex digit */ +#define _SP 0x80 /* hard space (0x20) */ + +extern const unsigned char _ctype[]; + +#define __ismask(x) (_ctype[(int)(unsigned char)(x)]) + +#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0) +#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0) +#define iscntrl(c) ((__ismask(c)&(_C)) != 0) +#define isdigit(c) ((__ismask(c)&(_D)) != 0) +#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0) +#define islower(c) ((__ismask(c)&(_L)) != 0) +#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0) +#define ispunct(c) ((__ismask(c)&(_P)) != 0) +#define isspace(c) ((__ismask(c)&(_S)) != 0) +#define isupper(c) ((__ismask(c)&(_U)) != 0) +#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0) + +#endif /* __HVMLOADER_CTYPE_H__ */ diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c index c2ba855c4a..1bad9bcf09 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -21,6 +21,7 @@ #include "util.h" #include "config.h" #include "hypercall.h" +#include "ctype.h" #include <stdint.h> #include <xen/xen.h> #include <xen/memory.h> diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h index ac2b0d33d9..fa73ba7a38 100644 --- a/tools/firmware/hvmloader/util.h +++ b/tools/firmware/hvmloader/util.h @@ -225,8 +225,6 @@ void perform_tests(void); #define perform_tests() ((void)0) #endif -#define isdigit(c) ((c) >= '0' && (c) <= '9') - extern char _start[], _end[]; #endif /* __HVMLOADER_UTIL_H__ */ |