/[qemu]/qemu/vl.c
ViewVC logotype

Diff of /qemu/vl.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.19 by bellard, Tue Sep 30 21:07:02 2003 UTC revision 1.20 by bellard, Tue Sep 30 21:40:47 2003 UTC
# Line 3283  CPUState *cpu_gdbstub_get_env(void *opaq Line 3283  CPUState *cpu_gdbstub_get_env(void *opaq
3283    
3284  int main_loop(void *opaque)  int main_loop(void *opaque)
3285  {  {
3286      struct pollfd ufds[2], *pf, *serial_ufd, *net_ufd, *gdb_ufd;      struct pollfd ufds[3], *pf, *serial_ufd, *net_ufd, *gdb_ufd;
3287      int ret, n, timeout;      int ret, n, timeout, serial_ok;
3288      uint8_t ch;      uint8_t ch;
3289      CPUState *env = global_env;      CPUState *env = global_env;
3290    
# Line 3296  int main_loop(void *opaque) Line 3296  int main_loop(void *opaque)
3296          term_init();          term_init();
3297      }      }
3298    
3299        serial_ok = 1;
3300      for(;;) {      for(;;) {
3301          ret = cpu_x86_exec(env);          ret = cpu_x86_exec(env);
3302          if (reset_requested)          if (reset_requested)
# Line 3310  int main_loop(void *opaque) Line 3311  int main_loop(void *opaque)
3311          /* poll any events */          /* poll any events */
3312          serial_ufd = NULL;          serial_ufd = NULL;
3313          pf = ufds;          pf = ufds;
3314          if (!(serial_ports[0].lsr & UART_LSR_DR)) {          if (serial_ok && !(serial_ports[0].lsr & UART_LSR_DR)) {
3315              serial_ufd = pf;              serial_ufd = pf;
3316              pf->fd = 0;              pf->fd = 0;
3317              pf->events = POLLIN;              pf->events = POLLIN;
# Line 3337  int main_loop(void *opaque) Line 3338  int main_loop(void *opaque)
3338                  n = read(0, &ch, 1);                  n = read(0, &ch, 1);
3339                  if (n == 1) {                  if (n == 1) {
3340                      serial_received_byte(&serial_ports[0], ch);                      serial_received_byte(&serial_ports[0], ch);
3341                    } else {
3342                        /* Closed, stop polling. */
3343                        serial_ok = 0;
3344                  }                  }
3345              }              }
3346              if (net_ufd && (net_ufd->revents & POLLIN)) {              if (net_ufd && (net_ufd->revents & POLLIN)) {

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26