Author: stepan
Date: 2009-12-01 15:05:24 +0100 (Tue, 01 Dec 2009)
New Revision: 78
Modified:
trunk/qemu-0.11.0/serialice.c
trunk/qemu-0.11.0/serialice.h
Log:
GNU indent serialice.* the way the Qemu folks like it.
Modified: trunk/qemu-0.11.0/serialice.c
===================================================================
--- trunk/qemu-0.11.0/serialice.c 2009-12-01 11:47:55 UTC (rev 77)
+++ trunk/qemu-0.11.0/serialice.c 2009-12-01 14:05:24 UTC (rev 78)
@@ -52,18 +52,18 @@
#define BUFFER_SIZE 1024
typedef struct {
#ifdef WIN32
- HANDLE fd;
+ HANDLE fd;
#else
- int fd;
+ int fd;
#endif
- char *buffer;
- char *command;
+ char *buffer;
+ char *command;
} SerialICEState;
static SerialICEState *s;
int serialice_active = 0;
-const char *serialice_lua_script="serialice.lua";
+const char *serialice_lua_script = "serialice.lua";
const char *serialice_mainboard = NULL;
@@ -76,25 +76,27 @@
// **************************************************************************
// LUA scripting interface and callbacks
-static int serialice_register_physical(lua_State *luastate)
+static int serialice_register_physical(lua_State * luastate)
{
- int n = lua_gettop(luastate);
- uint32_t addr, size;
- ram_addr_t phys;
+ int n = lua_gettop(luastate);
+ uint32_t addr, size;
+ ram_addr_t phys;
- if (n != 2) {
- fprintf(stderr, "ERROR: Not called as SerialICE_register_physical(<addr> <size>)\n");
- return 0;
- }
+ if (n != 2) {
+ fprintf(stderr,
+ "ERROR: Not called as SerialICE_register_physical(<addr> <size>)\n");
+ return 0;
+ }
- addr = lua_tointeger(luastate, 1);
- size = lua_tointeger(luastate, 2);
+ addr = lua_tointeger(luastate, 1);
+ size = lua_tointeger(luastate, 2);
- printf("Registering physical memory at 0x%08x (0x%08x bytes)\n", addr, size);
- phys = qemu_ram_alloc(size);
- cpu_register_physical_memory(addr, size, phys);
+ printf("Registering physical memory at 0x%08x (0x%08x bytes)\n", addr,
+ size);
+ phys = qemu_ram_alloc(size);
+ cpu_register_physical_memory(addr, size, phys);
- return 0;
+ return 0;
}
static int serialice_lua_init(void)
@@ -115,15 +117,16 @@
/* Load the script file */
status = luaL_loadfile(L, serialice_lua_script);
if (status) {
- fprintf(stderr, "Couldn't load SerialICE script: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr, "Couldn't load SerialICE script: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
/* Ask Lua to run our little script */
status = lua_pcall(L, 0, 1, 0);
if (status) {
- fprintf(stderr, "Failed to run script: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr, "Failed to run script: %s\n", lua_tostring(L, -1));
+ exit(1);
}
lua_pop(L, 1);
@@ -132,106 +135,114 @@
static int serialice_lua_exit(void)
{
- lua_close(L);
- return 0;
+ lua_close(L);
+ return 0;
}
const char *serialice_lua_execute(const char *cmd)
{
- int error;
- char *errstring = NULL;
- error = luaL_loadbuffer(L, cmd, strlen(cmd), "line") ||
- lua_pcall(L, 0, 0, 0);
- if (error) {
- errstring = strdup(lua_tostring(L, -1));
- lua_pop(L, 1);
- }
+ int error;
+ char *errstring = NULL;
+ error = luaL_loadbuffer(L, cmd, strlen(cmd), "line") ||
+ lua_pcall(L, 0, 0, 0);
+ if (error) {
+ errstring = strdup(lua_tostring(L, -1));
+ lua_pop(L, 1);
+ }
- return errstring;
+ return errstring;
}
-static int serialice_io_read_filter(uint32_t *data, uint16_t port, int size)
+static int serialice_io_read_filter(uint32_t * data, uint16_t port, int size)
{
int ret, result;
lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_io_read_filter");
- lua_pushinteger(L, port); // port
- lua_pushinteger(L, size); // datasize
+ lua_pushinteger(L, port); // port
+ lua_pushinteger(L, size); // datasize
result = lua_pcall(L, 2, 2, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_io_read_filter: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr, "Failed to run function SerialICE_io_read_filter: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
*data = lua_tointeger(L, -1);
ret = lua_toboolean(L, -2);
lua_pop(L, 2);
return ret;
-}
+}
-static int serialice_io_write_filter(uint32_t *data, uint16_t port, int size)
+static int serialice_io_write_filter(uint32_t * data, uint16_t port, int size)
{
int ret, result;
lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_io_write_filter");
- lua_pushinteger(L, port); // port
- lua_pushinteger(L, size); // datasize
- lua_pushinteger(L, *data); // data
+ lua_pushinteger(L, port); // port
+ lua_pushinteger(L, size); // datasize
+ lua_pushinteger(L, *data); // data
result = lua_pcall(L, 3, 2, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_io_write_filter: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr,
+ "Failed to run function SerialICE_io_write_filter: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
*data = lua_tointeger(L, -1);
ret = lua_toboolean(L, -2);
lua_pop(L, 2);
return ret;
-}
+}
-
#define READ_FROM_QEMU (1 << 0)
#define READ_FROM_SERIALICE (1 << 1)
-static int serialice_memory_read_filter(uint32_t addr, uint32_t *data, int size)
+static int serialice_memory_read_filter(uint32_t addr, uint32_t * data,
+ int size)
{
int ret = 0, result;
lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_memory_read_filter");
- lua_pushinteger(L, addr); // addr
- lua_pushinteger(L, size); // datasize
+ lua_pushinteger(L, addr); // addr
+ lua_pushinteger(L, size); // datasize
result = lua_pcall(L, 2, 3, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_memory_read_filter: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr,
+ "Failed to run function SerialICE_memory_read_filter: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
- *data = lua_tointeger(L, -1); // result
+ *data = lua_tointeger(L, -1); // result
- ret |= lua_toboolean(L, -2) ? READ_FROM_QEMU : 0; // to_qemu
- ret |= lua_toboolean(L, -3) ? READ_FROM_SERIALICE : 0; // to_hw
+ ret |= lua_toboolean(L, -2) ? READ_FROM_QEMU : 0; // to_qemu
+ ret |= lua_toboolean(L, -3) ? READ_FROM_SERIALICE : 0; // to_hw
lua_pop(L, 3);
return ret;
-}
+}
#define WRITE_TO_QEMU (1 << 0)
#define WRITE_TO_SERIALICE (1 << 1)
-static int serialice_memory_write_filter(uint32_t addr, int size, uint32_t *data)
+static int serialice_memory_write_filter(uint32_t addr, int size,
+ uint32_t * data)
{
int ret = 0, result;
int write_to_qemu, write_to_serialice;
lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_memory_write_filter");
- lua_pushinteger(L, addr); // address
- lua_pushinteger(L, size); // datasize
- lua_pushinteger(L, *data); // data
+ lua_pushinteger(L, addr); // address
+ lua_pushinteger(L, size); // datasize
+ lua_pushinteger(L, *data); // data
result = lua_pcall(L, 3, 3, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_memory_write_filter: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr,
+ "Failed to run function SerialICE_memory_write_filter: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
*data = lua_tointeger(L, -1);
write_to_qemu = lua_toboolean(L, -2);
@@ -242,65 +253,69 @@
ret |= write_to_serialice ? WRITE_TO_SERIALICE : 0;
return ret;
-}
+}
#define FILTER_READ 0
#define FILTER_WRITE 1
-static int serialice_msr_filter(int flags, uint32_t addr, uint32_t *hi, uint32_t *lo)
+static int serialice_msr_filter(int flags, uint32_t addr, uint32_t * hi,
+ uint32_t * lo)
{
int ret, result;
if (flags & FILTER_WRITE)
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_write_filter");
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_write_filter");
else
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_read_filter");
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_read_filter");
- lua_pushinteger(L, addr); // port
- lua_pushinteger(L, *hi); // high
- lua_pushinteger(L, *lo); // low
+ lua_pushinteger(L, addr); // port
+ lua_pushinteger(L, *hi); // high
+ lua_pushinteger(L, *lo); // low
result = lua_pcall(L, 3, 3, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_msr_read_filter: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr,
+ "Failed to run function SerialICE_msr_read_filter: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
ret = lua_toboolean(L, -3);
if (ret) {
- *hi = lua_tointeger(L, -1);
- *lo = lua_tointeger(L, -2);
+ *hi = lua_tointeger(L, -1);
+ *lo = lua_tointeger(L, -2);
}
lua_pop(L, 3);
return ret;
-}
+}
-static int serialice_cpuid_filter(cpuid_regs_t *regs)
+static int serialice_cpuid_filter(cpuid_regs_t * regs)
{
int ret, result;
lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_cpuid_filter");
- lua_pushinteger(L, regs->eax); // eax
- lua_pushinteger(L, regs->ecx); // ecx
+ lua_pushinteger(L, regs->eax); // eax
+ lua_pushinteger(L, regs->ecx); // ecx
result = lua_pcall(L, 2, 5, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_msr_read_filter: %s\n", lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr,
+ "Failed to run function SerialICE_msr_read_filter: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
ret = lua_toboolean(L, -5);
if (ret) {
- regs->eax = lua_tointeger(L, -4);
- regs->ebx = lua_tointeger(L, -3);
- regs->ecx = lua_tointeger(L, -2);
- regs->edx = lua_tointeger(L, -1);
+ regs->eax = lua_tointeger(L, -4);
+ regs->ebx = lua_tointeger(L, -3);
+ regs->ecx = lua_tointeger(L, -2);
+ regs->edx = lua_tointeger(L, -1);
}
lua_pop(L, 5);
return ret;
-}
+}
-
/* SerialICE output loggers */
#define LOG_IO 0
@@ -316,451 +331,447 @@
int result;
if ((flags & LOG_WRITE) && (flags & LOG_MEMORY))
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_memory_write_log");
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_memory_write_log");
else if (!(flags & LOG_WRITE) && (flags & LOG_MEMORY))
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_memory_read_log");
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_memory_read_log");
else if ((flags & LOG_WRITE) && !(flags & LOG_MEMORY))
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_io_write_log");
- else // if (!(flags & LOG_WRITE) && !(flags & LOG_MEMORY))
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_io_read_log");
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_io_write_log");
+ else // if (!(flags & LOG_WRITE) && !(flags & LOG_MEMORY))
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_io_read_log");
- lua_pushinteger(L, addr); // addr/port
- lua_pushinteger(L, size); // datasize
- lua_pushinteger(L, data); // data
+ lua_pushinteger(L, addr); // addr/port
+ lua_pushinteger(L, size); // datasize
+ lua_pushinteger(L, data); // data
lua_pushboolean(L, ((flags & LOG_TARGET) != 0));
result = lua_pcall(L, 4, 0, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_%s_%s_log: %s\n",
- (flags & LOG_MEMORY)?"memory":"io",
- (flags & LOG_WRITE)?"write":"read",
- lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr, "Failed to run function SerialICE_%s_%s_log: %s\n",
+ (flags & LOG_MEMORY) ? "memory" : "io",
+ (flags & LOG_WRITE) ? "write" : "read", lua_tostring(L, -1));
+ exit(1);
}
-}
+}
-static void serialice_msr_log(int flags, uint32_t addr, uint32_t hi, uint32_t lo, int filtered)
+static void serialice_msr_log(int flags, uint32_t addr, uint32_t hi,
+ uint32_t lo, int filtered)
{
int result;
if (flags & LOG_WRITE)
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_write_log");
- else // if (!(flags & LOG_WRITE))
- lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_read_log");
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_write_log");
+ else // if (!(flags & LOG_WRITE))
+ lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_msr_read_log");
- lua_pushinteger(L, addr); // addr/port
- lua_pushinteger(L, hi); // datasize
- lua_pushinteger(L, lo); // data
- lua_pushboolean(L, filtered); // data
+ lua_pushinteger(L, addr); // addr/port
+ lua_pushinteger(L, hi); // datasize
+ lua_pushinteger(L, lo); // data
+ lua_pushboolean(L, filtered); // data
result = lua_pcall(L, 4, 0, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_msr_%s_log: %s\n",
- (flags & LOG_WRITE)?"write":"read",
- lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr, "Failed to run function SerialICE_msr_%s_log: %s\n",
+ (flags & LOG_WRITE) ? "write" : "read", lua_tostring(L, -1));
+ exit(1);
}
}
-static void serialice_cpuid_log(uint32_t eax, uint32_t ecx, cpuid_regs_t res, int filtered)
+static void serialice_cpuid_log(uint32_t eax, uint32_t ecx, cpuid_regs_t res,
+ int filtered)
{
int result;
lua_getfield(L, LUA_GLOBALSINDEX, "SerialICE_cpuid_log");
- lua_pushinteger(L, eax); // input: eax
- lua_pushinteger(L, ecx); // input: ecx
- lua_pushinteger(L, res.eax); // output: eax
- lua_pushinteger(L, res.ebx); // output: ebx
- lua_pushinteger(L, res.ecx); // output: ecx
- lua_pushinteger(L, res.edx); // output: edx
- lua_pushboolean(L, filtered); // data
+ lua_pushinteger(L, eax); // input: eax
+ lua_pushinteger(L, ecx); // input: ecx
+ lua_pushinteger(L, res.eax); // output: eax
+ lua_pushinteger(L, res.ebx); // output: ebx
+ lua_pushinteger(L, res.ecx); // output: ecx
+ lua_pushinteger(L, res.edx); // output: edx
+ lua_pushboolean(L, filtered); // data
result = lua_pcall(L, 7, 0, 0);
if (result) {
- fprintf(stderr, "Failed to run function SerialICE_cpuid_log: %s\n",
- lua_tostring(L, -1));
- exit(1);
+ fprintf(stderr, "Failed to run function SerialICE_cpuid_log: %s\n",
+ lua_tostring(L, -1));
+ exit(1);
}
}
-
// **************************************************************************
// low level communication with the SerialICE shell (serial communication)
-static int serialice_read(SerialICEState *state, void *buf, size_t nbyte)
+static int serialice_read(SerialICEState * state, void *buf, size_t nbyte)
{
- int bytes_read = 0;
+ int bytes_read = 0;
- while (1) {
+ while (1) {
#ifdef WIN32
- int ret = 0;
- ReadFile(state->fd, buf, nbyte - bytes_read, &ret, NULL);
- if (!ret)
- break;
+ int ret = 0;
+ ReadFile(state->fd, buf, nbyte - bytes_read, &ret, NULL);
+ if (!ret)
+ break;
#else
- int ret = read(state->fd, buf, nbyte - bytes_read);
+ int ret = read(state->fd, buf, nbyte - bytes_read);
- if (ret == -1 && errno == EINTR)
- continue;
+ if (ret == -1 && errno == EINTR)
+ continue;
- if (ret == -1)
- break;
+ if (ret == -1)
+ break;
#endif
- bytes_read += ret;
- buf += ret;
+ bytes_read += ret;
+ buf += ret;
- if (bytes_read >= (int)nbyte)
- break;
- }
+ if (bytes_read >= (int)nbyte)
+ break;
+ }
- return bytes_read;
+ return bytes_read;
}
-static int serialice_write(SerialICEState *state, const void *buf, size_t nbyte)
+static int serialice_write(SerialICEState * state, const void *buf,
+ size_t nbyte)
{
- char *buffer = (char *) buf;
- char c;
- int i;
+ char *buffer = (char *)buf;
+ char c;
+ int i;
- for (i = 0; i < (int)nbyte; i++) {
+ for (i = 0; i < (int)nbyte; i++) {
#ifdef WIN32
- int ret = 0;
- while (ret == 0)
- WriteFile(state->fd, buffer + i, 1, &ret, NULL);
- ret = 0;
- while (ret == 0)
- ReadFile(state->fd, &c, 1, &ret, NULL);
+ int ret = 0;
+ while (ret == 0)
+ WriteFile(state->fd, buffer + i, 1, &ret, NULL);
+ ret = 0;
+ while (ret == 0)
+ ReadFile(state->fd, &c, 1, &ret, NULL);
#else
- while (write(state->fd, buffer + i, 1) != 1) ;
- while (read(state->fd, &c, 1) != 1) ;
+ while (write(state->fd, buffer + i, 1) != 1) ;
+ while (read(state->fd, &c, 1) != 1) ;
#endif
- if (c != buffer[i]) {
- printf("Readback error! %x/%x\n", c, buffer[i]);
- }
+ if (c != buffer[i]) {
+ printf("Readback error! %x/%x\n", c, buffer[i]);
}
+ }
- return nbyte;
+ return nbyte;
}
static int serialice_wait_prompt(void)
{
- char buf[3];
- int l;
+ char buf[3];
+ int l;
- l = serialice_read(s, buf, 3);
+ l = serialice_read(s, buf, 3);
+ if (l == -1) {
+ perror("SerialICE: Could not read from target");
+ exit(1);
+ }
+
+ while (buf[0] != '\n' || buf[1] != '>' || buf[2] != ' ') {
+ buf[0] = buf[1];
+ buf[1] = buf[2];
+ l = serialice_read(s, buf + 2, 1);
if (l == -1) {
- perror("SerialICE: Could not read from target");
- exit(1);
+ perror("SerialICE: Could not read from target");
+ exit(1);
}
+ }
- while (buf[0] != '\n' || buf[1] != '>' || buf[2] != ' ') {
- buf[0] = buf[1];
- buf[1] = buf[2];
- l = serialice_read(s, buf + 2, 1);
- if (l == -1) {
- perror("SerialICE: Could not read from target");
- exit(1);
- }
- }
-
- return 0;
+ return 0;
}
static void serialice_command(const char *command, int reply_len)
{
#if SERIALICE_DEBUG > 5
- int i;
+ int i;
#endif
- int l;
+ int l;
- serialice_wait_prompt();
+ serialice_wait_prompt();
- serialice_write(s, command, strlen(command));
-
- memset(s->buffer, 0, reply_len + 1); // clear enough of the buffer
+ serialice_write(s, command, strlen(command));
- l = serialice_read(s, s->buffer, reply_len);
+ memset(s->buffer, 0, reply_len + 1); // clear enough of the buffer
- if (l == -1) {
- perror("SerialICE: Could not read from target");
- exit(1);
- }
+ l = serialice_read(s, s->buffer, reply_len);
- // compensate for CR on the wire. Needed on Win32
- if (s->buffer[0] == '\r') {
- memmove(s->buffer, s->buffer+1, reply_len);
- serialice_read(s, s->buffer+reply_len-1, 1);
- }
+ if (l == -1) {
+ perror("SerialICE: Could not read from target");
+ exit(1);
+ }
+ // compensate for CR on the wire. Needed on Win32
+ if (s->buffer[0] == '\r') {
+ memmove(s->buffer, s->buffer + 1, reply_len);
+ serialice_read(s, s->buffer + reply_len - 1, 1);
+ }
- if (l != reply_len) {
- printf("SerialICE: command was not answered sufficiently: "
- "(%d/%d bytes)\n'%s'\n", l, reply_len, s->buffer);
- exit(1);
- }
-
+ if (l != reply_len) {
+ printf("SerialICE: command was not answered sufficiently: "
+ "(%d/%d bytes)\n'%s'\n", l, reply_len, s->buffer);
+ exit(1);
+ }
#if SERIALICE_DEBUG > 5
- for (i=0; i < reply_len; i++)
- printf("%02x ", s->buffer[i]);
- printf("\n");
+ for (i = 0; i < reply_len; i++)
+ printf("%02x ", s->buffer[i]);
+ printf("\n");
#endif
}
-
// **************************************************************************
// high level communication with the SerialICE shell
static void serialice_get_version(void)
{
- int len = 0;
- printf("SerialICE: Version.....: ");
- serialice_command("*vi", 0);
+ int len = 0;
+ printf("SerialICE: Version.....: ");
+ serialice_command("*vi", 0);
- memset(s->buffer, 0, BUFFER_SIZE);
- serialice_read(s, s->buffer, 1);
- serialice_read(s, s->buffer, 1);
- while (s->buffer[len++] != '\n')
- serialice_read(s, s->buffer+len, 1);
- s->buffer[len-1]='\0';
+ memset(s->buffer, 0, BUFFER_SIZE);
+ serialice_read(s, s->buffer, 1);
+ serialice_read(s, s->buffer, 1);
+ while (s->buffer[len++] != '\n')
+ serialice_read(s, s->buffer + len, 1);
+ s->buffer[len - 1] = '\0';
- printf("%s\n", s->buffer);
+ printf("%s\n", s->buffer);
}
-
static void serialice_get_mainboard(void)
{
- int len = 31;
+ int len = 31;
- printf("SerialICE: Mainboard...: ");
- serialice_command("*mb", 32);
- while (len && s->buffer[len] == ' ')
- s->buffer[len--] = '\0';
- serialice_mainboard = strdup(s->buffer + 1);
- printf("%s\n", serialice_mainboard);
+ printf("SerialICE: Mainboard...: ");
+ serialice_command("*mb", 32);
+ while (len && s->buffer[len] == ' ')
+ s->buffer[len--] = '\0';
+ serialice_mainboard = strdup(s->buffer + 1);
+ printf("%s\n", serialice_mainboard);
}
uint8_t serialice_inb(uint16_t port)
{
- uint8_t ret;
- uint32_t data;
+ uint8_t ret;
+ uint32_t data;
- if (serialice_io_read_filter(&data, port, 1))
- return data & 0xff;
+ if (serialice_io_read_filter(&data, port, 1))
+ return data & 0xff;
- sprintf(s->command, "*ri%04x.b", port);
- // command read back: "\n00" (3 characters)
- serialice_command(s->command, 3);
- ret = (uint8_t)strtoul(s->buffer + 1, (char **)NULL, 16);
+ sprintf(s->command, "*ri%04x.b", port);
+ // command read back: "\n00" (3 characters)
+ serialice_command(s->command, 3);
+ ret = (uint8_t) strtoul(s->buffer + 1, (char **)NULL, 16);
- serialice_log(LOG_READ|LOG_IO, ret, port, 1);
+ serialice_log(LOG_READ | LOG_IO, ret, port, 1);
- return ret;
+ return ret;
}
uint16_t serialice_inw(uint16_t port)
{
- uint16_t ret;
- uint32_t data;
+ uint16_t ret;
+ uint32_t data;
- if (serialice_io_read_filter(&data, port, 1))
- return data & 0xffff;
+ if (serialice_io_read_filter(&data, port, 1))
+ return data & 0xffff;
- sprintf(s->command, "*ri%04x.w", port);
- // command read back: "\n0000" (5 characters)
- serialice_command(s->command, 5);
- ret = (uint16_t)strtoul(s->buffer + 1, (char **)NULL, 16);
+ sprintf(s->command, "*ri%04x.w", port);
+ // command read back: "\n0000" (5 characters)
+ serialice_command(s->command, 5);
+ ret = (uint16_t) strtoul(s->buffer + 1, (char **)NULL, 16);
- serialice_log(LOG_READ|LOG_IO, ret, port, 2);
+ serialice_log(LOG_READ | LOG_IO, ret, port, 2);
- return ret;
+ return ret;
}
uint32_t serialice_inl(uint16_t port)
{
- uint32_t ret;
- uint32_t data;
+ uint32_t ret;
+ uint32_t data;
- if (serialice_io_read_filter(&data, port, 1))
- return data;
+ if (serialice_io_read_filter(&data, port, 1))
+ return data;
- sprintf(s->command, "*ri%04x.l", port);
- // command read back: "\n00000000" (9 characters)
- serialice_command(s->command, 9);
- ret = (uint32_t)strtoul(s->buffer + 1, (char **)NULL, 16);
+ sprintf(s->command, "*ri%04x.l", port);
+ // command read back: "\n00000000" (9 characters)
+ serialice_command(s->command, 9);
+ ret = (uint32_t) strtoul(s->buffer + 1, (char **)NULL, 16);
- serialice_log(LOG_READ|LOG_IO, ret, port, 4);
+ serialice_log(LOG_READ | LOG_IO, ret, port, 4);
- return ret;
+ return ret;
}
void serialice_outb(uint8_t data, uint16_t port)
{
- uint32_t filtered_data = (uint32_t)data;
+ uint32_t filtered_data = (uint32_t) data;
- serialice_log(LOG_WRITE|LOG_IO, data, port, 1);
+ serialice_log(LOG_WRITE | LOG_IO, data, port, 1);
- if (serialice_io_write_filter(&filtered_data, port, 1)) {
- return;
- }
+ if (serialice_io_write_filter(&filtered_data, port, 1)) {
+ return;
+ }
- data = (uint8_t)filtered_data;
- sprintf(s->command, "*wi%04x.b=%02x", port, data);
- serialice_command(s->command, 0);
+ data = (uint8_t) filtered_data;
+ sprintf(s->command, "*wi%04x.b=%02x", port, data);
+ serialice_command(s->command, 0);
}
void serialice_outw(uint16_t data, uint16_t port)
{
- uint32_t filtered_data = (uint32_t)data;
+ uint32_t filtered_data = (uint32_t) data;
- serialice_log(LOG_WRITE|LOG_IO, data, port, 2);
+ serialice_log(LOG_WRITE | LOG_IO, data, port, 2);
- if (serialice_io_write_filter(&filtered_data, port, 2)) {
- return;
- }
+ if (serialice_io_write_filter(&filtered_data, port, 2)) {
+ return;
+ }
- data = (uint16_t)filtered_data;
- sprintf(s->command, "*wi%04x.w=%04x", port, data);
- serialice_command(s->command, 0);
+ data = (uint16_t) filtered_data;
+ sprintf(s->command, "*wi%04x.w=%04x", port, data);
+ serialice_command(s->command, 0);
}
void serialice_outl(uint32_t data, uint16_t port)
{
- uint32_t filtered_data = data;
+ uint32_t filtered_data = data;
- serialice_log(LOG_WRITE|LOG_IO, data, port, 4);
+ serialice_log(LOG_WRITE | LOG_IO, data, port, 4);
- if (serialice_io_write_filter(&filtered_data, port, 4)) {
- return;
- }
+ if (serialice_io_write_filter(&filtered_data, port, 4)) {
+ return;
+ }
- data = filtered_data;
- sprintf(s->command, "*wi%04x.l=%08x", port, data);
- serialice_command(s->command, 0);
+ data = filtered_data;
+ sprintf(s->command, "*wi%04x.l=%08x", port, data);
+ serialice_command(s->command, 0);
}
uint8_t serialice_readb(uint32_t addr)
{
- uint8_t ret;
- sprintf(s->command, "*rm%08x.b", addr);
- // command read back: "\n00" (3 characters)
- serialice_command(s->command, 3);
- ret = (uint8_t)strtoul(s->buffer + 1, (char **)NULL, 16);
- return ret;
+ uint8_t ret;
+ sprintf(s->command, "*rm%08x.b", addr);
+ // command read back: "\n00" (3 characters)
+ serialice_command(s->command, 3);
+ ret = (uint8_t) strtoul(s->buffer + 1, (char **)NULL, 16);
+ return ret;
}
uint16_t serialice_readw(uint32_t addr)
{
- uint16_t ret;
- sprintf(s->command, "*rm%08x.w", addr);
- // command read back: "\n0000" (5 characters)
- serialice_command(s->command, 5);
- ret = (uint16_t)strtoul(s->buffer + 1, (char **)NULL, 16);
- return ret;
+ uint16_t ret;
+ sprintf(s->command, "*rm%08x.w", addr);
+ // command read back: "\n0000" (5 characters)
+ serialice_command(s->command, 5);
+ ret = (uint16_t) strtoul(s->buffer + 1, (char **)NULL, 16);
+ return ret;
}
uint32_t serialice_readl(uint32_t addr)
{
- uint32_t ret;
- sprintf(s->command, "*rm%08x.l", addr);
- // command read back: "\n00000000" (9 characters)
- serialice_command(s->command, 9);
- ret = (uint32_t)strtoul(s->buffer + 1, (char **)NULL, 16);
- return ret;
+ uint32_t ret;
+ sprintf(s->command, "*rm%08x.l", addr);
+ // command read back: "\n00000000" (9 characters)
+ serialice_command(s->command, 9);
+ ret = (uint32_t) strtoul(s->buffer + 1, (char **)NULL, 16);
+ return ret;
}
void serialice_writeb(uint8_t data, uint32_t addr)
{
- sprintf(s->command, "*wm%08x.b=%02x", addr, data);
- serialice_command(s->command, 0);
+ sprintf(s->command, "*wm%08x.b=%02x", addr, data);
+ serialice_command(s->command, 0);
}
void serialice_writew(uint16_t data, uint32_t addr)
{
- sprintf(s->command, "*wm%08x.w=%04x", addr, data);
- serialice_command(s->command, 0);
+ sprintf(s->command, "*wm%08x.w=%04x", addr, data);
+ serialice_command(s->command, 0);
}
void serialice_writel(uint32_t data, uint32_t addr)
{
- sprintf(s->command, "*wm%08x.l=%08x", addr, data);
- serialice_command(s->command, 0);
+ sprintf(s->command, "*wm%08x.l=%08x", addr, data);
+ serialice_command(s->command, 0);
}
uint64_t serialice_rdmsr(uint32_t addr, uint32_t key)
{
- uint32_t hi, lo;
- uint64_t ret;
- int filtered;
+ uint32_t hi, lo;
+ uint64_t ret;
+ int filtered;
- filtered = serialice_msr_filter(FILTER_READ, addr, &hi, &lo);
- if (!filtered) {
- sprintf(s->command, "*rc%08x.%08x", addr, key);
+ filtered = serialice_msr_filter(FILTER_READ, addr, &hi, &lo);
+ if (!filtered) {
+ sprintf(s->command, "*rc%08x.%08x", addr, key);
- // command read back: "\n00000000.00000000" (18 characters)
- serialice_command(s->command, 18);
+ // command read back: "\n00000000.00000000" (18 characters)
+ serialice_command(s->command, 18);
- s->buffer[9] = 0; // . -> \0
- hi = (uint32_t)strtoul(s->buffer + 1, (char **)NULL, 16);
- lo = (uint32_t)strtoul(s->buffer + 10, (char **)NULL, 16);
- }
+ s->buffer[9] = 0; // . -> \0
+ hi = (uint32_t) strtoul(s->buffer + 1, (char **)NULL, 16);
+ lo = (uint32_t) strtoul(s->buffer + 10, (char **)NULL, 16);
+ }
- ret = hi;
- ret <<= 32;
- ret |= lo;
+ ret = hi;
+ ret <<= 32;
+ ret |= lo;
- serialice_msr_log(LOG_READ, addr, hi, lo, filtered);
+ serialice_msr_log(LOG_READ, addr, hi, lo, filtered);
- return ret;
+ return ret;
}
void serialice_wrmsr(uint64_t data, uint32_t addr, uint32_t key)
{
- uint32_t hi, lo;
- int filtered;
+ uint32_t hi, lo;
+ int filtered;
- hi = (data >> 32);
- lo = (data & 0xffffffff);
+ hi = (data >> 32);
+ lo = (data & 0xffffffff);
- filtered = serialice_msr_filter(FILTER_WRITE, addr, &hi, &lo);
+ filtered = serialice_msr_filter(FILTER_WRITE, addr, &hi, &lo);
- if (!filtered) {
- sprintf(s->command, "*wc%08x.%08x=%08x.%08x", addr, key, hi, lo);
- serialice_command(s->command, 0);
- }
+ if (!filtered) {
+ sprintf(s->command, "*wc%08x.%08x=%08x.%08x", addr, key, hi, lo);
+ serialice_command(s->command, 0);
+ }
- serialice_msr_log(LOG_WRITE, addr, hi, lo, filtered);
+ serialice_msr_log(LOG_WRITE, addr, hi, lo, filtered);
}
cpuid_regs_t serialice_cpuid(uint32_t eax, uint32_t ecx)
{
- cpuid_regs_t ret;
- int filtered;
+ cpuid_regs_t ret;
+ int filtered;
- ret.eax = eax;
- ret.ebx = 0; // either set by filter or by target
- ret.ecx = ecx;
- ret.edx = 0; // either set by filter or by target
+ ret.eax = eax;
+ ret.ebx = 0; // either set by filter or by target
+ ret.ecx = ecx;
+ ret.edx = 0; // either set by filter or by target
- filtered = serialice_cpuid_filter(&ret);
- if (!filtered) {
- sprintf(s->command, "*ci%08x.%08x", eax, ecx);
+ filtered = serialice_cpuid_filter(&ret);
+ if (!filtered) {
+ sprintf(s->command, "*ci%08x.%08x", eax, ecx);
- // command read back: "\n000006f2.00000000.00001234.12340324"
- // (36 characters)
- serialice_command(s->command, 36);
+ // command read back: "\n000006f2.00000000.00001234.12340324"
+ // (36 characters)
+ serialice_command(s->command, 36);
- s->buffer[9] = 0; // . -> \0
- s->buffer[18] = 0; // . -> \0
- s->buffer[27] = 0; // . -> \0
- ret.eax = (uint32_t)strtoul(s->buffer + 1, (char **)NULL, 16);
- ret.ebx = (uint32_t)strtoul(s->buffer + 10, (char **)NULL, 16);
- ret.ecx = (uint32_t)strtoul(s->buffer + 19, (char **)NULL, 16);
- ret.edx = (uint32_t)strtoul(s->buffer + 28, (char **)NULL, 16);
- }
+ s->buffer[9] = 0; // . -> \0
+ s->buffer[18] = 0; // . -> \0
+ s->buffer[27] = 0; // . -> \0
+ ret.eax = (uint32_t) strtoul(s->buffer + 1, (char **)NULL, 16);
+ ret.ebx = (uint32_t) strtoul(s->buffer + 10, (char **)NULL, 16);
+ ret.ecx = (uint32_t) strtoul(s->buffer + 19, (char **)NULL, 16);
+ ret.edx = (uint32_t) strtoul(s->buffer + 28, (char **)NULL, 16);
+ }
- serialice_cpuid_log(eax, ecx, ret, filtered);
+ serialice_cpuid_log(eax, ecx, ret, filtered);
- return ret;
+ return ret;
}
// **************************************************************************
@@ -768,25 +779,31 @@
static uint32_t serialice_load_wrapper(uint32_t addr, unsigned int size)
{
- switch (size) {
- case 1: return (uint32_t)serialice_readb(addr);
- case 2: return (uint32_t)serialice_readw(addr);
- case 4: return (uint32_t)serialice_readl(addr);
- default: printf("WARNING: unknown read access size %d @%08x\n", size, addr);
- }
- return 0;
+ switch (size) {
+ case 1:
+ return (uint32_t) serialice_readb(addr);
+ case 2:
+ return (uint32_t) serialice_readw(addr);
+ case 4:
+ return (uint32_t) serialice_readl(addr);
+ default:
+ printf("WARNING: unknown read access size %d @%08x\n", size, addr);
+ }
+ return 0;
}
/**
* This function is called by the softmmu engine to update the status
* of a load cycle
*/
-void serialice_log_load(int caught, uint32_t addr, uint32_t result, unsigned int data_size)
+void serialice_log_load(int caught, uint32_t addr, uint32_t result,
+ unsigned int data_size)
{
- if (caught)
- serialice_log(LOG_READ|LOG_MEMORY|LOG_TARGET, result, addr, data_size);
- else
- serialice_log(LOG_READ|LOG_MEMORY, result, addr, data_size);
+ if (caught)
+ serialice_log(LOG_READ | LOG_MEMORY | LOG_TARGET, result, addr,
+ data_size);
+ else
+ serialice_log(LOG_READ | LOG_MEMORY, result, addr, data_size);
}
/* This function can grab Qemu load ops and forward them to the SerialICE
@@ -794,44 +811,55 @@
*
* @return 0: pass on to Qemu; 1: handled locally.
*/
-int serialice_handle_load(uint32_t addr, uint32_t *result, unsigned int data_size)
+int serialice_handle_load(uint32_t addr, uint32_t * result,
+ unsigned int data_size)
{
- int source;
+ int source;
- source = serialice_memory_read_filter(addr, result, data_size);
+ source = serialice_memory_read_filter(addr, result, data_size);
- if (source & READ_FROM_SERIALICE) {
- *result = serialice_load_wrapper(addr, data_size);
- return 1;
- }
+ if (source & READ_FROM_SERIALICE) {
+ *result = serialice_load_wrapper(addr, data_size);
+ return 1;
+ }
- if (source & READ_FROM_QEMU) {
- return 0;
- }
+ if (source & READ_FROM_QEMU) {
+ return 0;
+ }
- /* No source for load, so the source is the script */
- return 1;
+ /* No source for load, so the source is the script */
+ return 1;
}
// **************************************************************************
// memory store handling
-static void serialice_store_wrapper(uint32_t addr, unsigned int size, uint32_t data)
+static void serialice_store_wrapper(uint32_t addr, unsigned int size,
+ uint32_t data)
{
- switch (size) {
- case 1: serialice_writeb((uint8_t)data, addr); break;
- case 2: serialice_writew((uint16_t)data, addr); break;
- case 4: serialice_writel((uint32_t)data, addr); break;
- default: printf("WARNING: unknown write access size %d @%08x\n", size, addr);
- }
+ switch (size) {
+ case 1:
+ serialice_writeb((uint8_t) data, addr);
+ break;
+ case 2:
+ serialice_writew((uint16_t) data, addr);
+ break;
+ case 4:
+ serialice_writel((uint32_t) data, addr);
+ break;
+ default:
+ printf("WARNING: unknown write access size %d @%08x\n", size, addr);
+ }
}
-static void serialice_log_store(int caught, uint32_t addr, uint32_t val, unsigned int data_size)
+static void serialice_log_store(int caught, uint32_t addr, uint32_t val,
+ unsigned int data_size)
{
- if (caught)
- serialice_log(LOG_WRITE|LOG_MEMORY|LOG_TARGET, val, addr, data_size);
- else
- serialice_log(LOG_WRITE|LOG_MEMORY, val, addr, data_size);
+ if (caught)
+ serialice_log(LOG_WRITE | LOG_MEMORY | LOG_TARGET, val, addr,
+ data_size);
+ else
+ serialice_log(LOG_WRITE | LOG_MEMORY, val, addr, data_size);
}
/* This function can grab Qemu store ops and forward them to the SerialICE
@@ -842,20 +870,20 @@
int serialice_handle_store(uint32_t addr, uint32_t val, unsigned int data_size)
{
- int write_to_target, write_to_qemu, ret;
- uint32_t filtered_data = val;
+ int write_to_target, write_to_qemu, ret;
+ uint32_t filtered_data = val;
- ret = serialice_memory_write_filter(addr, data_size, &filtered_data);
+ ret = serialice_memory_write_filter(addr, data_size, &filtered_data);
- write_to_target = ((ret & WRITE_TO_SERIALICE) != 0);
- write_to_qemu = ((ret & WRITE_TO_QEMU) != 0);
+ write_to_target = ((ret & WRITE_TO_SERIALICE) != 0);
+ write_to_qemu = ((ret & WRITE_TO_QEMU) != 0);
- serialice_log_store(write_to_target, addr, filtered_data, data_size);
+ serialice_log_store(write_to_target, addr, filtered_data, data_size);
- if (write_to_target)
- serialice_store_wrapper(addr, data_size, filtered_data);
+ if (write_to_target)
+ serialice_store_wrapper(addr, data_size, filtered_data);
- return (write_to_qemu == 0);
+ return (write_to_qemu == 0);
}
// **************************************************************************
@@ -863,127 +891,125 @@
void serialice_init(void)
{
- printf("SerialICE: Open connection to target hardware...\n");
+ printf("SerialICE: Open connection to target hardware...\n");
- if (serialice_device == NULL) {
- printf("You need to specify a serial device to use SerialICE.\n");
- exit(1);
- }
+ if (serialice_device == NULL) {
+ printf("You need to specify a serial device to use SerialICE.\n");
+ exit(1);
+ }
- s = qemu_mallocz(sizeof(SerialICEState));
+ s = qemu_mallocz(sizeof(SerialICEState));
#ifdef WIN32
- s->fd = CreateFile(serialice_device, GENERIC_READ | GENERIC_WRITE,
- 0, NULL, OPEN_EXISTING, 0, NULL);
+ s->fd = CreateFile(serialice_device, GENERIC_READ | GENERIC_WRITE,
+ 0, NULL, OPEN_EXISTING, 0, NULL);
- if (s->fd == INVALID_HANDLE_VALUE) {
- perror("SerialICE: Could not connect to target TTY");
- exit(1);
- }
+ if (s->fd == INVALID_HANDLE_VALUE) {
+ perror("SerialICE: Could not connect to target TTY");
+ exit(1);
+ }
- DCB dcb;
- if (!GetCommState(s->fd, &dcb)) {
- perror("SerialICE: Could not load config for target TTY");
- exit(1);
- }
+ DCB dcb;
+ if (!GetCommState(s->fd, &dcb)) {
+ perror("SerialICE: Could not load config for target TTY");
+ exit(1);
+ }
- dcb.BaudRate = CBR_115200;
- dcb.ByteSize = 8;
- dcb.Parity = NOPARITY;
- dcb.StopBits = ONESTOPBIT;
+ dcb.BaudRate = CBR_115200;
+ dcb.ByteSize = 8;
+ dcb.Parity = NOPARITY;
+ dcb.StopBits = ONESTOPBIT;
- if (!SetCommState(s->fd, &dcb)) {
- perror("SerialICE: Could not store config for target TTY");
- exit(1);
- }
-
+ if (!SetCommState(s->fd, &dcb)) {
+ perror("SerialICE: Could not store config for target TTY");
+ exit(1);
+ }
#else
- s->fd = open(serialice_device, O_RDWR | O_NOCTTY | O_NONBLOCK);
+ s->fd = open(serialice_device, O_RDWR | O_NOCTTY | O_NONBLOCK);
- if (s->fd == -1) {
- perror("SerialICE: Could not connect to target TTY");
- exit(1);
- }
+ if (s->fd == -1) {
+ perror("SerialICE: Could not connect to target TTY");
+ exit(1);
+ }
- if (ioctl(s->fd, TIOCEXCL) == -1) {
- perror("SerialICE: TTY not exclusively available");
- exit(1);
- }
+ if (ioctl(s->fd, TIOCEXCL) == -1) {
+ perror("SerialICE: TTY not exclusively available");
+ exit(1);
+ }
- if (fcntl(s->fd, F_SETFL, 0) == -1) {
- perror("SerialICE: Could not switch to blocking I/O");
- exit(1);
- }
+ if (fcntl(s->fd, F_SETFL, 0) == -1) {
+ perror("SerialICE: Could not switch to blocking I/O");
+ exit(1);
+ }
- if (tcgetattr(s->fd, &options) == -1) {
- perror("SerialICE: Could not get TTY attributes");
- exit(1);
- }
+ if (tcgetattr(s->fd, &options) == -1) {
+ perror("SerialICE: Could not get TTY attributes");
+ exit(1);
+ }
- cfsetispeed(&options, B115200);
- cfsetospeed(&options, B115200);
+ cfsetispeed(&options, B115200);
+ cfsetospeed(&options, B115200);
- /* set raw input, 1 second timeout */
- options.c_cflag |= (CLOCAL | CREAD);
- options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
- options.c_oflag &= ~OPOST;
- options.c_iflag |= IGNCR;
- options.c_cc[VMIN] = 0;
- options.c_cc[VTIME] = 100;
+ /* set raw input, 1 second timeout */
+ options.c_cflag |= (CLOCAL | CREAD);
+ options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
+ options.c_oflag &= ~OPOST;
+ options.c_iflag |= IGNCR;
+ options.c_cc[VMIN] = 0;
+ options.c_cc[VTIME] = 100;
- tcsetattr(s->fd, TCSANOW, &options);
+ tcsetattr(s->fd, TCSANOW, &options);
- tcflush(s->fd, TCIOFLUSH);
+ tcflush(s->fd, TCIOFLUSH);
#endif
- s->buffer = qemu_mallocz(BUFFER_SIZE);
- s->command = qemu_mallocz(BUFFER_SIZE);
+ s->buffer = qemu_mallocz(BUFFER_SIZE);
+ s->command = qemu_mallocz(BUFFER_SIZE);
- printf("SerialICE: Waiting for handshake with target... ");
+ printf("SerialICE: Waiting for handshake with target... ");
- /* Trigger a prompt */
- serialice_write(s, "@", 1);
+ /* Trigger a prompt */
+ serialice_write(s, "@", 1);
- /* ... and wait for it to appear */
- if (serialice_wait_prompt() == 0) {
- printf("target alife!\n");
- } else {
- printf("target not ok!\n" );
- exit(1);
- }
+ /* ... and wait for it to appear */
+ if (serialice_wait_prompt() == 0) {
+ printf("target alife!\n");
+ } else {
+ printf("target not ok!\n");
+ exit(1);
+ }
- /* Each serialice_command() waits for a prompt, so trigger one for the
- * first command, as we consumed the last one for the handshake
- */
- serialice_write(s, "@", 1);
+ /* Each serialice_command() waits for a prompt, so trigger one for the
+ * first command, as we consumed the last one for the handshake
+ */
+ serialice_write(s, "@", 1);
- serialice_get_version();
+ serialice_get_version();
- serialice_get_mainboard();
+ serialice_get_mainboard();
- printf("SerialICE: LUA init...\n");
- serialice_lua_init();
+ printf("SerialICE: LUA init...\n");
+ serialice_lua_init();
- /* Let the rest of Qemu know we're alife */
- serialice_active = 1;
+ /* Let the rest of Qemu know we're alife */
+ serialice_active = 1;
#if SERIALICE_HIDES_VGA
- /* Go to Qemu monitor immediately, don't try to open
- * vgabios-cirrus.bin, because it's not needed anyways.
- *
- * This is disabled because the Qemu window is distorted
- * until the first console change when this is active
- */
- vga_interface_type = VGA_NONE;
+ /* Go to Qemu monitor immediately, don't try to open
+ * vgabios-cirrus.bin, because it's not needed anyways.
+ *
+ * This is disabled because the Qemu window is distorted
+ * until the first console change when this is active
+ */
+ vga_interface_type = VGA_NONE;
#endif
}
void serialice_exit(void)
{
- serialice_lua_exit();
- qemu_free(s->command);
- qemu_free(s->buffer);
- qemu_free(s);
+ serialice_lua_exit();
+ qemu_free(s->command);
+ qemu_free(s->buffer);
+ qemu_free(s);
}
device_init(serialice_init)
// no exit function
-
Modified: trunk/qemu-0.11.0/serialice.h
===================================================================
--- trunk/qemu-0.11.0/serialice.h 2009-12-01 11:47:55 UTC (rev 77)
+++ trunk/qemu-0.11.0/serialice.h 2009-12-01 14:05:24 UTC (rev 78)
@@ -54,14 +54,15 @@
void serialice_wrmsr(uint64_t data, uint32_t addr, uint32_t key);
typedef struct {
- uint32_t eax, ebx, ecx, edx;
+ uint32_t eax, ebx, ecx, edx;
} cpuid_regs_t;
-
cpuid_regs_t serialice_cpuid(uint32_t eax, uint32_t ecx);
-int serialice_handle_load(uint32_t addr, uint32_t *result, unsigned int data_size);
-void serialice_log_load(int caught, uint32_t addr, uint32_t result, unsigned int data_size);
+int serialice_handle_load(uint32_t addr, uint32_t * result,
+ unsigned int data_size);
+void serialice_log_load(int caught, uint32_t addr, uint32_t result,
+ unsigned int data_size);
int serialice_handle_store(uint32_t addr, uint32_t val, unsigned int data_size);
#define SERIALICE_HIDES_VGA 0