mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -06:00
added cutils.c
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2310 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
96d30e4801
commit
18607dcb7c
6 changed files with 91 additions and 91 deletions
2
Makefile
2
Makefile
|
@ -39,7 +39,7 @@ subdir-%: dyngen$(EXESUF)
|
||||||
|
|
||||||
recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
|
recurse-all: $(patsubst %,subdir-%, $(TARGET_DIRS))
|
||||||
|
|
||||||
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
|
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
|
||||||
$(CC) -DQEMU_TOOL $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ -lz $(LIBS)
|
$(CC) -DQEMU_TOOL $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) $(LDFLAGS) $(BASE_LDFLAGS) -o $@ $^ -lz $(LIBS)
|
||||||
|
|
||||||
dyngen$(EXESUF): dyngen.c
|
dyngen$(EXESUF): dyngen.c
|
||||||
|
|
|
@ -300,6 +300,7 @@ endif
|
||||||
|
|
||||||
# must use static linking to avoid leaving stuff in virtual address space
|
# must use static linking to avoid leaving stuff in virtual address space
|
||||||
VL_OBJS=vl.o osdep.o readline.o monitor.o pci.o console.o loader.o isa_mmio.o
|
VL_OBJS=vl.o osdep.o readline.o monitor.o pci.o console.o loader.o isa_mmio.o
|
||||||
|
VL_OBJS+=cutils.o
|
||||||
VL_OBJS+=block.o block-raw.o
|
VL_OBJS+=block.o block-raw.o
|
||||||
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
|
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
|
||||||
ifdef CONFIG_WIN32
|
ifdef CONFIG_WIN32
|
||||||
|
|
83
cutils.c
Normal file
83
cutils.c
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
/*
|
||||||
|
* Simple C functions to supplement the C library
|
||||||
|
*
|
||||||
|
* Copyright (c) 2006 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#include "vl.h"
|
||||||
|
|
||||||
|
void pstrcpy(char *buf, int buf_size, const char *str)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
char *q = buf;
|
||||||
|
|
||||||
|
if (buf_size <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
c = *str++;
|
||||||
|
if (c == 0 || q >= buf + buf_size - 1)
|
||||||
|
break;
|
||||||
|
*q++ = c;
|
||||||
|
}
|
||||||
|
*q = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* strcat and truncate. */
|
||||||
|
char *pstrcat(char *buf, int buf_size, const char *s)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
len = strlen(buf);
|
||||||
|
if (len < buf_size)
|
||||||
|
pstrcpy(buf + len, buf_size - len, s);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
int strstart(const char *str, const char *val, const char **ptr)
|
||||||
|
{
|
||||||
|
const char *p, *q;
|
||||||
|
p = str;
|
||||||
|
q = val;
|
||||||
|
while (*q != '\0') {
|
||||||
|
if (*p != *q)
|
||||||
|
return 0;
|
||||||
|
p++;
|
||||||
|
q++;
|
||||||
|
}
|
||||||
|
if (ptr)
|
||||||
|
*ptr = p;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int stristart(const char *str, const char *val, const char **ptr)
|
||||||
|
{
|
||||||
|
const char *p, *q;
|
||||||
|
p = str;
|
||||||
|
q = val;
|
||||||
|
while (*q != '\0') {
|
||||||
|
if (toupper(*p) != toupper(*q))
|
||||||
|
return 0;
|
||||||
|
p++;
|
||||||
|
q++;
|
||||||
|
}
|
||||||
|
if (ptr)
|
||||||
|
*ptr = p;
|
||||||
|
return 1;
|
||||||
|
}
|
43
qemu-img.c
43
qemu-img.c
|
@ -62,49 +62,6 @@ char *qemu_strdup(const char *str)
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pstrcpy(char *buf, int buf_size, const char *str)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
char *q = buf;
|
|
||||||
|
|
||||||
if (buf_size <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for(;;) {
|
|
||||||
c = *str++;
|
|
||||||
if (c == 0 || q >= buf + buf_size - 1)
|
|
||||||
break;
|
|
||||||
*q++ = c;
|
|
||||||
}
|
|
||||||
*q = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
/* strcat and truncate. */
|
|
||||||
char *pstrcat(char *buf, int buf_size, const char *s)
|
|
||||||
{
|
|
||||||
int len;
|
|
||||||
len = strlen(buf);
|
|
||||||
if (len < buf_size)
|
|
||||||
pstrcpy(buf + len, buf_size - len, s);
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
int strstart(const char *str, const char *val, const char **ptr)
|
|
||||||
{
|
|
||||||
const char *p, *q;
|
|
||||||
p = str;
|
|
||||||
q = val;
|
|
||||||
while (*q != '\0') {
|
|
||||||
if (*p != *q)
|
|
||||||
return 0;
|
|
||||||
p++;
|
|
||||||
q++;
|
|
||||||
}
|
|
||||||
if (ptr)
|
|
||||||
*ptr = p;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void term_printf(const char *fmt, ...)
|
void term_printf(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
43
vl.c
43
vl.c
|
@ -306,49 +306,6 @@ void isa_unassign_ioport(int start, int length)
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
|
|
||||||
void pstrcpy(char *buf, int buf_size, const char *str)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
char *q = buf;
|
|
||||||
|
|
||||||
if (buf_size <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for(;;) {
|
|
||||||
c = *str++;
|
|
||||||
if (c == 0 || q >= buf + buf_size - 1)
|
|
||||||
break;
|
|
||||||
*q++ = c;
|
|
||||||
}
|
|
||||||
*q = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
/* strcat and truncate. */
|
|
||||||
char *pstrcat(char *buf, int buf_size, const char *s)
|
|
||||||
{
|
|
||||||
int len;
|
|
||||||
len = strlen(buf);
|
|
||||||
if (len < buf_size)
|
|
||||||
pstrcpy(buf + len, buf_size - len, s);
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
int strstart(const char *str, const char *val, const char **ptr)
|
|
||||||
{
|
|
||||||
const char *p, *q;
|
|
||||||
p = str;
|
|
||||||
q = val;
|
|
||||||
while (*q != '\0') {
|
|
||||||
if (*p != *q)
|
|
||||||
return 0;
|
|
||||||
p++;
|
|
||||||
q++;
|
|
||||||
}
|
|
||||||
if (ptr)
|
|
||||||
*ptr = p;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cpu_outb(CPUState *env, int addr, int val)
|
void cpu_outb(CPUState *env, int addr, int val)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_IOPORT
|
#ifdef DEBUG_IOPORT
|
||||||
|
|
10
vl.h
10
vl.h
|
@ -102,6 +102,12 @@ static inline char *realpath(const char *path, char *resolved_path)
|
||||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* cutils.c */
|
||||||
|
void pstrcpy(char *buf, int buf_size, const char *str);
|
||||||
|
char *pstrcat(char *buf, int buf_size, const char *s);
|
||||||
|
int strstart(const char *str, const char *val, const char **ptr);
|
||||||
|
int stristart(const char *str, const char *val, const char **ptr);
|
||||||
|
|
||||||
/* vl.c */
|
/* vl.c */
|
||||||
uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
|
uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
|
||||||
|
|
||||||
|
@ -109,10 +115,6 @@ void hw_error(const char *fmt, ...);
|
||||||
|
|
||||||
extern const char *bios_dir;
|
extern const char *bios_dir;
|
||||||
|
|
||||||
void pstrcpy(char *buf, int buf_size, const char *str);
|
|
||||||
char *pstrcat(char *buf, int buf_size, const char *s);
|
|
||||||
int strstart(const char *str, const char *val, const char **ptr);
|
|
||||||
|
|
||||||
extern int vm_running;
|
extern int vm_running;
|
||||||
|
|
||||||
typedef struct vm_change_state_entry VMChangeStateEntry;
|
typedef struct vm_change_state_entry VMChangeStateEntry;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue