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

Diff of /qemu/vl.c

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

revision 1.23 by bellard, Sun Oct 5 14:28:56 2003 UTC revision 1.24 by bellard, Mon Oct 27 21:18:35 2003 UTC
# Line 2067  static void ide_identify(IDEState *s) Line 2067  static void ide_identify(IDEState *s)
2067    
2068      memset(s->io_buffer, 0, 512);      memset(s->io_buffer, 0, 512);
2069      p = (uint16_t *)s->io_buffer;      p = (uint16_t *)s->io_buffer;
2070      stw(p + 0, 0x0040);      stw_raw(p + 0, 0x0040);
2071      stw(p + 1, s->cylinders);      stw_raw(p + 1, s->cylinders);
2072      stw(p + 3, s->heads);      stw_raw(p + 3, s->heads);
2073      stw(p + 4, 512 * s->sectors); /* sectors */      stw_raw(p + 4, 512 * s->sectors); /* sectors */
2074      stw(p + 5, 512); /* sector size */      stw_raw(p + 5, 512); /* sector size */
2075      stw(p + 6, s->sectors);      stw_raw(p + 6, s->sectors);
2076      stw(p + 20, 3); /* buffer type */      stw_raw(p + 20, 3); /* buffer type */
2077      stw(p + 21, 512); /* cache size in sectors */      stw_raw(p + 21, 512); /* cache size in sectors */
2078      stw(p + 22, 4); /* ecc bytes */      stw_raw(p + 22, 4); /* ecc bytes */
2079      padstr((uint8_t *)(p + 27), "QEMU HARDDISK", 40);      padstr((uint8_t *)(p + 27), "QEMU HARDDISK", 40);
2080  #if MAX_MULT_SECTORS > 1      #if MAX_MULT_SECTORS > 1    
2081      stw(p + 47, MAX_MULT_SECTORS);      stw_raw(p + 47, MAX_MULT_SECTORS);
2082  #endif  #endif
2083      stw(p + 48, 1); /* dword I/O */      stw_raw(p + 48, 1); /* dword I/O */
2084      stw(p + 49, 1 << 9); /* LBA supported, no DMA */      stw_raw(p + 49, 1 << 9); /* LBA supported, no DMA */
2085      stw(p + 51, 0x200); /* PIO transfer cycle */      stw_raw(p + 51, 0x200); /* PIO transfer cycle */
2086      stw(p + 52, 0x200); /* DMA transfer cycle */      stw_raw(p + 52, 0x200); /* DMA transfer cycle */
2087      stw(p + 54, s->cylinders);      stw_raw(p + 54, s->cylinders);
2088      stw(p + 55, s->heads);      stw_raw(p + 55, s->heads);
2089      stw(p + 56, s->sectors);      stw_raw(p + 56, s->sectors);
2090      oldsize = s->cylinders * s->heads * s->sectors;      oldsize = s->cylinders * s->heads * s->sectors;
2091      stw(p + 57, oldsize);      stw_raw(p + 57, oldsize);
2092      stw(p + 58, oldsize >> 16);      stw_raw(p + 58, oldsize >> 16);
2093      if (s->mult_sectors)      if (s->mult_sectors)
2094          stw(p + 59, 0x100 | s->mult_sectors);          stw_raw(p + 59, 0x100 | s->mult_sectors);
2095      stw(p + 60, s->nb_sectors);      stw_raw(p + 60, s->nb_sectors);
2096      stw(p + 61, s->nb_sectors >> 16);      stw_raw(p + 61, s->nb_sectors >> 16);
2097      stw(p + 80, (1 << 1) | (1 << 2));      stw_raw(p + 80, (1 << 1) | (1 << 2));
2098      stw(p + 82, (1 << 14));      stw_raw(p + 82, (1 << 14));
2099      stw(p + 83, (1 << 14));      stw_raw(p + 83, (1 << 14));
2100      stw(p + 84, (1 << 14));      stw_raw(p + 84, (1 << 14));
2101      stw(p + 85, (1 << 14));      stw_raw(p + 85, (1 << 14));
2102      stw(p + 86, 0);      stw_raw(p + 86, 0);
2103      stw(p + 87, (1 << 14));      stw_raw(p + 87, (1 << 14));
2104  }  }
2105    
2106  static inline void ide_abort_command(IDEState *s)  static inline void ide_abort_command(IDEState *s)
# Line 3275  void dumb_display_init(DisplayState *ds) Line 3275  void dumb_display_init(DisplayState *ds)
3275      ds->dpy_refresh = dumb_refresh;      ds->dpy_refresh = dumb_refresh;
3276  }  }
3277    
3278    #if !defined(CONFIG_SOFTMMU)
3279  /***********************************************************/  /***********************************************************/
3280  /* cpu signal handler */  /* cpu signal handler */
3281  static void host_segv_handler(int host_signum, siginfo_t *info,  static void host_segv_handler(int host_signum, siginfo_t *info,
# Line 3285  static void host_segv_handler(int host_s Line 3286  static void host_segv_handler(int host_s
3286      term_exit();      term_exit();
3287      abort();      abort();
3288  }  }
3289    #endif
3290    
3291  static int timer_irq_pending;  static int timer_irq_pending;
3292  static int timer_irq_count;  static int timer_irq_count;
# Line 3807  int main(int argc, char **argv) Line 3809  int main(int argc, char **argv)
3809      /* setup cpu signal handlers for MMU / self modifying code handling */      /* setup cpu signal handlers for MMU / self modifying code handling */
3810      sigfillset(&act.sa_mask);      sigfillset(&act.sa_mask);
3811      act.sa_flags = SA_SIGINFO;      act.sa_flags = SA_SIGINFO;
3812    #if !defined(CONFIG_SOFTMMU)
3813      act.sa_sigaction = host_segv_handler;      act.sa_sigaction = host_segv_handler;
3814      sigaction(SIGSEGV, &act, NULL);      sigaction(SIGSEGV, &act, NULL);
3815      sigaction(SIGBUS, &act, NULL);      sigaction(SIGBUS, &act, NULL);
3816    #endif
3817    
3818      act.sa_sigaction = host_alarm_handler;      act.sa_sigaction = host_alarm_handler;
3819      sigaction(SIGALRM, &act, NULL);      sigaction(SIGALRM, &act, NULL);

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24

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