Commit 18607dcb7ce42da3e36f1c9bf6c77f28ebf293c8

Authored by bellard
1 parent 96d30e48

added cutils.c


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2310 c046a42c-6fe2-441c-8c8c-71466251a162
Makefile
... ... @@ -39,7 +39,7 @@ subdir-%: dyngen$(EXESUF)
39 39  
40 40 recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
41 41  
42   -qemu-img$(EXESUF): qemu-img.c block.c block-raw.c block-cow.c block-qcow.c aes.c block-vmdk.c block-cloop.c block-dmg.c block-bochs.c block-vpc.c block-vvfat.c block-qcow2.c
  42 +qemu-img$(EXESUF): qemu-img.c cutils.c block.c block-raw.c block-cow.c block-qcow.c aes.c block-vmdk.c block-cloop.c block-dmg.c block-bochs.c block-vpc.c block-vvfat.c block-qcow2.c
43 43 $(CC) -DQEMU_TOOL $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ -lz $(LIBS)
44 44  
45 45 dyngen$(EXESUF): dyngen.c
... ...
Makefile.target
... ... @@ -300,6 +300,7 @@ endif
300 300  
301 301 # must use static linking to avoid leaving stuff in virtual address space
302 302 VL_OBJS=vl.o osdep.o readline.o monitor.o pci.o console.o loader.o isa_mmio.o
  303 +VL_OBJS+=cutils.o
303 304 VL_OBJS+=block.o block-raw.o
304 305 VL_OBJS+=block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o block-dmg.o block-bochs.o block-vpc.o block-vvfat.o block-qcow2.o
305 306 ifdef CONFIG_WIN32
... ...
cutils.c 0 → 100644
  1 +/*
  2 + * Simple C functions to supplement the C library
  3 + *
  4 + * Copyright (c) 2006 Fabrice Bellard
  5 + *
  6 + * Permission is hereby granted, free of charge, to any person obtaining a copy
  7 + * of this software and associated documentation files (the "Software"), to deal
  8 + * in the Software without restriction, including without limitation the rights
  9 + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10 + * copies of the Software, and to permit persons to whom the Software is
  11 + * furnished to do so, subject to the following conditions:
  12 + *
  13 + * The above copyright notice and this permission notice shall be included in
  14 + * all copies or substantial portions of the Software.
  15 + *
  16 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17 + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  19 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20 + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21 + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22 + * THE SOFTWARE.
  23 + */
  24 +#include "vl.h"
  25 +
  26 +void pstrcpy(char *buf, int buf_size, const char *str)
  27 +{
  28 + int c;
  29 + char *q = buf;
  30 +
  31 + if (buf_size <= 0)
  32 + return;
  33 +
  34 + for(;;) {
  35 + c = *str++;
  36 + if (c == 0 || q >= buf + buf_size - 1)
  37 + break;
  38 + *q++ = c;
  39 + }
  40 + *q = '\0';
  41 +}
  42 +
  43 +/* strcat and truncate. */
  44 +char *pstrcat(char *buf, int buf_size, const char *s)
  45 +{
  46 + int len;
  47 + len = strlen(buf);
  48 + if (len < buf_size)
  49 + pstrcpy(buf + len, buf_size - len, s);
  50 + return buf;
  51 +}
  52 +
  53 +int strstart(const char *str, const char *val, const char **ptr)
  54 +{
  55 + const char *p, *q;
  56 + p = str;
  57 + q = val;
  58 + while (*q != '\0') {
  59 + if (*p != *q)
  60 + return 0;
  61 + p++;
  62 + q++;
  63 + }
  64 + if (ptr)
  65 + *ptr = p;
  66 + return 1;
  67 +}
  68 +
  69 +int stristart(const char *str, const char *val, const char **ptr)
  70 +{
  71 + const char *p, *q;
  72 + p = str;
  73 + q = val;
  74 + while (*q != '\0') {
  75 + if (toupper(*p) != toupper(*q))
  76 + return 0;
  77 + p++;
  78 + q++;
  79 + }
  80 + if (ptr)
  81 + *ptr = p;
  82 + return 1;
  83 +}
... ...
qemu-img.c
... ... @@ -62,49 +62,6 @@ char *qemu_strdup(const char *str)
62 62 return ptr;
63 63 }
64 64  
65   -void pstrcpy(char *buf, int buf_size, const char *str)
66   -{
67   - int c;
68   - char *q = buf;
69   -
70   - if (buf_size <= 0)
71   - return;
72   -
73   - for(;;) {
74   - c = *str++;
75   - if (c == 0 || q >= buf + buf_size - 1)
76   - break;
77   - *q++ = c;
78   - }
79   - *q = '\0';
80   -}
81   -
82   -/* strcat and truncate. */
83   -char *pstrcat(char *buf, int buf_size, const char *s)
84   -{
85   - int len;
86   - len = strlen(buf);
87   - if (len < buf_size)
88   - pstrcpy(buf + len, buf_size - len, s);
89   - return buf;
90   -}
91   -
92   -int strstart(const char *str, const char *val, const char **ptr)
93   -{
94   - const char *p, *q;
95   - p = str;
96   - q = val;
97   - while (*q != '\0') {
98   - if (*p != *q)
99   - return 0;
100   - p++;
101   - q++;
102   - }
103   - if (ptr)
104   - *ptr = p;
105   - return 1;
106   -}
107   -
108 65 void term_printf(const char *fmt, ...)
109 66 {
110 67 va_list ap;
... ...
... ... @@ -306,49 +306,6 @@ void isa_unassign_ioport(int start, int length)
306 306  
307 307 /***********************************************************/
308 308  
309   -void pstrcpy(char *buf, int buf_size, const char *str)
310   -{
311   - int c;
312   - char *q = buf;
313   -
314   - if (buf_size <= 0)
315   - return;
316   -
317   - for(;;) {
318   - c = *str++;
319   - if (c == 0 || q >= buf + buf_size - 1)
320   - break;
321   - *q++ = c;
322   - }
323   - *q = '\0';
324   -}
325   -
326   -/* strcat and truncate. */
327   -char *pstrcat(char *buf, int buf_size, const char *s)
328   -{
329   - int len;
330   - len = strlen(buf);
331   - if (len < buf_size)
332   - pstrcpy(buf + len, buf_size - len, s);
333   - return buf;
334   -}
335   -
336   -int strstart(const char *str, const char *val, const char **ptr)
337   -{
338   - const char *p, *q;
339   - p = str;
340   - q = val;
341   - while (*q != '\0') {
342   - if (*p != *q)
343   - return 0;
344   - p++;
345   - q++;
346   - }
347   - if (ptr)
348   - *ptr = p;
349   - return 1;
350   -}
351   -
352 309 void cpu_outb(CPUState *env, int addr, int val)
353 310 {
354 311 #ifdef DEBUG_IOPORT
... ...
... ... @@ -102,6 +102,12 @@ static inline char *realpath(const char *path, char *resolved_path)
102 102 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
103 103 #endif
104 104  
  105 +/* cutils.c */
  106 +void pstrcpy(char *buf, int buf_size, const char *str);
  107 +char *pstrcat(char *buf, int buf_size, const char *s);
  108 +int strstart(const char *str, const char *val, const char **ptr);
  109 +int stristart(const char *str, const char *val, const char **ptr);
  110 +
105 111 /* vl.c */
106 112 uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
107 113  
... ... @@ -109,10 +115,6 @@ void hw_error(const char *fmt, ...);
109 115  
110 116 extern const char *bios_dir;
111 117  
112   -void pstrcpy(char *buf, int buf_size, const char *str);
113   -char *pstrcat(char *buf, int buf_size, const char *s);
114   -int strstart(const char *str, const char *val, const char **ptr);
115   -
116 118 extern int vm_running;
117 119  
118 120 typedef struct vm_change_state_entry VMChangeStateEntry;
... ...