2006-12-26 H.J. Lu <hongjiu.lu@intel.com>
[deliverable/binutils-gdb.git] / gdb / ser-go32.c
index e3d3bf525ca83fbe5824acb7a3959da3050dd358..66e24d9b48c9466969e65562166521d2b5361775 100644 (file)
@@ -1,12 +1,12 @@
 /* Remote serial interface for local (hardwired) serial ports for GO32.
-   Copyright 1992, 1993, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1993, 2000, 2001 Free Software Foundation, Inc.
 
    Contributed by Nigel Stephens, Algorithmics Ltd. (nigel@algor.co.uk).
 
-   This version uses DPMI interrupts to handle buffered i/o 
+   This version uses DPMI interrupts to handle buffered i/o
    without the separate "asynctsr" program.
 
-   This file is part of GDB.  
+   This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 #include "gdbcmd.h"
 #include "serial.h"
+#include "gdb_string.h"
 
 
 /*
 #define        MSR_DDSR        0x02
 #define        MSR_DCTS        0x01
 
-#include <string.h>
+#include <time.h>
 #include <dos.h>
 #include <go32.h>
 #include <dpmi.h>
@@ -139,9 +140,6 @@ typedef unsigned long u_long;
 /* input buffer size */
 #define CBSIZE 4096
 
-/* return raw 18Hz clock count */
-extern long rawclock (void);
-
 #define RAWHZ  18
 
 #ifdef DOS_STATS
@@ -230,14 +228,14 @@ ports[4] =
   }
 };
 
-static int dos_open (serial_t scb, const char *name);
-static void dos_raw (serial_t scb);
-static int dos_readchar (serial_t scb, int timeout);
-static int dos_setbaudrate (serial_t scb, int rate);
-static int dos_write (serial_t scb, const char *str, int len);
-static void dos_close (serial_t scb);
-static serial_ttystate dos_get_tty_state (serial_t scb);
-static int dos_set_tty_state (serial_t scb, serial_ttystate state);
+static int dos_open (struct serial *scb, const char *name);
+static void dos_raw (struct serial *scb);
+static int dos_readchar (struct serial *scb, int timeout);
+static int dos_setbaudrate (struct serial *scb, int rate);
+static int dos_write (struct serial *scb, const char *str, int len);
+static void dos_close (struct serial *scb);
+static serial_ttystate dos_get_tty_state (struct serial *scb);
+static int dos_set_tty_state (struct serial *scb, serial_ttystate state);
 static int dos_baudconv (int rate);
 
 #define inb(p,a)       inportb((p)->base + (a))
@@ -356,24 +354,23 @@ dos_comisr (int irq)
 }
 
 #define ISRNAME(x) dos_comisr##x
-#define ISR(x) static void ISRNAME(x)() {dos_comisr(x);}
+#define ISR(x) static void ISRNAME(x)(void) {dos_comisr(x);}
 
-ISR (0) ISR (1) ISR (2) ISR (3)
-ISR (4) ISR (5) ISR (6) ISR (7)
+ISR (0) ISR (1) ISR (2) ISR (3) /* OK */
+ISR (4) ISR (5) ISR (6) ISR (7) /* OK */
 
-     typedef void (*isr_t) ();
+typedef void (*isr_t) (void);
 
-     static isr_t isrs[NINTR] =
-     {
+static isr_t isrs[NINTR] =
+  {
        ISRNAME (0), ISRNAME (1), ISRNAME (2), ISRNAME (3),
        ISRNAME (4), ISRNAME (5), ISRNAME (6), ISRNAME (7)
-};
+  };
 \f
 
 
-     static struct intrupt *
-       dos_hookirq (irq)
-     unsigned int irq;
+static struct intrupt *
+dos_hookirq (unsigned int irq)
 {
   struct intrupt *intr;
   unsigned int vec;
@@ -412,7 +409,8 @@ ISR (4) ISR (5) ISR (6) ISR (7)
   intr->new_pmhandler.pm_offset = (u_long) isr;
   _go32_dpmi_allocate_iret_wrapper (&intr->new_pmhandler);
 
-  if (_go32_dpmi_set_protected_mode_interrupt_vector (vec, &intr->new_pmhandler))
+  if (_go32_dpmi_set_protected_mode_interrupt_vector (vec,
+                                                     &intr->new_pmhandler))
     {
       return 0;
     }
@@ -455,7 +453,7 @@ dos_unhookirq (struct intrupt *intr)
 
 
 static int
-dos_open (serial_t scb, const char *name)
+dos_open (struct serial *scb, const char *name)
 {
   struct dos_ttystate *port;
   int fd, i;
@@ -507,7 +505,8 @@ ok:
   outb (port, com_ier, 0);
 
   /* tentatively enable 16550 fifo, and see if it responds */
-  outb (port, com_fifo, FIFO_ENABLE | FIFO_RCV_RST | FIFO_XMT_RST | FIFO_TRIGGER);
+  outb (port, com_fifo,
+       FIFO_ENABLE | FIFO_RCV_RST | FIFO_XMT_RST | FIFO_TRIGGER);
   sleep (1);
   port->fifo = ((inb (port, com_iir) & IIR_FIFO_MASK) == IIR_FIFO_MASK);
 
@@ -559,7 +558,7 @@ ok:
 
 
 static void
-dos_close (serial_t scb)
+dos_close (struct serial *scb)
 {
   struct dos_ttystate *port;
   struct intrupt *intrupt;
@@ -601,19 +600,19 @@ dos_close (serial_t scb)
 
 
 static int
-dos_noop (serial_t scb ATTRIBUTE_UNUSED)
+dos_noop (struct serial *scb)
 {
   return 0;
 }
 
 static void
-dos_raw (serial_t scb ATTRIBUTE_UNUSED)
+dos_raw (struct serial *scb)
 {
   /* Always in raw mode */
 }
 
 static int
-dos_readchar (serial_t scb, int timeout)
+dos_readchar (struct serial *scb, int timeout)
 {
   struct dos_ttystate *port = &ports[scb->fd];
   long then;
@@ -624,7 +623,6 @@ dos_readchar (serial_t scb, int timeout)
     {
       if (timeout >= 0 && (rawclock () - then) >= 0)
        return SERIAL_TIMEOUT;
-      notice_quit ();
     }
 
   return c;
@@ -632,7 +630,7 @@ dos_readchar (serial_t scb, int timeout)
 
 
 static serial_ttystate
-dos_get_tty_state (serial_t scb)
+dos_get_tty_state (struct serial *scb)
 {
   struct dos_ttystate *port = &ports[scb->fd];
   struct dos_ttystate *state;
@@ -656,7 +654,7 @@ dos_get_tty_state (serial_t scb)
 }
 
 static int
-dos_set_tty_state (serial_t scb, serial_ttystate ttystate)
+dos_set_tty_state (struct serial *scb, serial_ttystate ttystate)
 {
   struct dos_ttystate *state;
 
@@ -666,8 +664,8 @@ dos_set_tty_state (serial_t scb, serial_ttystate ttystate)
 }
 
 static int
-dos_noflush_set_tty_state (serial_t scb, serial_ttystate new_ttystate,
-                          serial_ttystate old_ttystate ATTRIBUTE_UNUSED)
+dos_noflush_set_tty_state (struct serial *scb, serial_ttystate new_ttystate,
+                          serial_ttystate old_ttystate)
 {
   struct dos_ttystate *state;
 
@@ -677,7 +675,7 @@ dos_noflush_set_tty_state (serial_t scb, serial_ttystate new_ttystate,
 }
 
 static int
-dos_flush_input (serial_t scb)
+dos_flush_input (struct serial *scb)
 {
   struct dos_ttystate *port = &ports[scb->fd];
   disable ();
@@ -689,9 +687,8 @@ dos_flush_input (serial_t scb)
 }
 
 static void
-dos_print_tty_state (serial_t scb ATTRIBUTE_UNUSED,
-                    serial_ttystate ttystate ATTRIBUTE_UNUSED,
-                    struct ui_file *stream ATTRIBUTE_UNUSED)
+dos_print_tty_state (struct serial *scb, serial_ttystate ttystate,
+                    struct ui_file *stream)
 {
   /* Nothing to print */
   return;
@@ -705,7 +702,7 @@ dos_baudconv (int rate)
   if (rate <= 0)
     return -1;
 
-#define divrnd(n, q)   (((n) * 2 / (q) + 1) / 2)       /* divide and round off */
+#define divrnd(n, q)   (((n) * 2 / (q) + 1) / 2) /* divide and round off */
   x = divrnd (COMTICK, rate);
   if (x <= 0)
     return -1;
@@ -721,7 +718,7 @@ dos_baudconv (int rate)
 
 
 static int
-dos_setbaudrate (serial_t scb, int rate)
+dos_setbaudrate (struct serial *scb, int rate)
 {
   struct dos_ttystate *port = &ports[scb->fd];
 
@@ -753,7 +750,7 @@ dos_setbaudrate (serial_t scb, int rate)
 }
 
 static int
-dos_setstopbits (serial_t scb, int num)
+dos_setstopbits (struct serial *scb, int num)
 {
   struct dos_ttystate *port = &ports[scb->fd];
   unsigned char cfcr;
@@ -780,7 +777,7 @@ dos_setstopbits (serial_t scb, int num)
 }
 
 static int
-dos_write (serial_t scb, const char *str, int len)
+dos_write (struct serial *scb, const char *str, int len)
 {
   volatile struct dos_ttystate *port = &ports[scb->fd];
   int fifosize = port->fifo ? 16 : 1;
@@ -821,7 +818,7 @@ dos_write (serial_t scb, const char *str, int len)
 
 
 static int
-dos_sendbreak (serial_t scb)
+dos_sendbreak (struct serial *scb)
 {
   volatile struct dos_ttystate *port = &ports[scb->fd];
   unsigned char cfcr;
@@ -859,12 +856,12 @@ static struct serial_ops dos_ops =
   dos_setbaudrate,
   dos_setstopbits,
   dos_noop,                    /* wait for output to drain */
-  (void (*)(serial_t, int))NULL        /* change into async mode */
+  (void (*)(struct serial *, int))NULL /* change into async mode */
 };
 
 
 static void
-dos_info (char *arg ATTRIBUTE_UNUSED, int from_tty ATTRIBUTE_UNUSED)
+dos_info (char *arg, int from_tty)
 {
   struct dos_ttystate *port;
 #ifdef DOS_STATS
@@ -906,62 +903,62 @@ _initialize_ser_dos (void)
     intrupts[1].inuse =                /* keyboard */
     intrupts[2].inuse = 1;     /* slave icu */
 
-  add_show_from_set (
-                     add_set_cmd ("com1base", class_obscure, var_zinteger,
-                                  (char *) &ports[0].base,
-                                  "Set COM1 base i/o port address.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com1irq", class_obscure, var_zinteger,
-                                  (char *) &ports[0].irq,
-                                  "Set COM1 interrupt request.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com2base", class_obscure, var_zinteger,
-                                  (char *) &ports[1].base,
-                                  "Set COM2 base i/o port address.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com2irq", class_obscure, var_zinteger,
-                                  (char *) &ports[1].irq,
-                                  "Set COM2 interrupt request.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com3base", class_obscure, var_zinteger,
-                                  (char *) &ports[2].base,
-                                  "Set COM3 base i/o port address.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com3irq", class_obscure, var_zinteger,
-                                  (char *) &ports[2].irq,
-                                  "Set COM3 interrupt request.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com4base", class_obscure, var_zinteger,
-                                  (char *) &ports[3].base,
-                                  "Set COM4 base i/o port address.",
-                                  &setlist),
-                     &showlist);
-
-  add_show_from_set (
-                     add_set_cmd ("com4irq", class_obscure, var_zinteger,
-                                  (char *) &ports[3].irq,
-                                  "Set COM4 interrupt request.",
-                                  &setlist),
-                     &showlist);
+  add_setshow_zinteger_cmd ("com1base", class_obscure, &ports[0].base, _("\
+Set COM1 base i/o port address."), _("\
+Show COM1 base i/o port address."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com1irq", class_obscure, &ports[0].irq, _("\
+Set COM1 interrupt request."), _("\
+Show COM1 interrupt request."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com2base", class_obscure, &ports[1].base, _("\
+Set COM2 base i/o port address."), _("\
+Show COM2 base i/o port address."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com2irq", class_obscure, &ports[1].irq, _("\
+Set COM2 interrupt request."), _("\
+Show COM2 interrupt request."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com3base", class_obscure, &ports[2].base, _("\
+Set COM3 base i/o port address."), _("\
+Show COM3 base i/o port address."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com3irq", class_obscure, &ports[2].irq, _("\
+Set COM3 interrupt request."), _("\
+Show COM3 interrupt request."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com4base", class_obscure, &ports[3].base, _("\
+Set COM4 base i/o port address."), _("\
+Show COM4 base i/o port address."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
+
+  add_setshow_zinteger_cmd ("com4irq", class_obscure, &ports[3].irq, _("\
+Set COM4 interrupt request."), _("\
+Show COM4 interrupt request."), NULL,
+                           NULL,
+                           NULL, /* FIXME: i18n: */
+                           &setlist, &showlist);
 
   add_info ("serial", dos_info,
-           "Print DOS serial port status.");
+           _("Print DOS serial port status."));
 }
This page took 0.030495 seconds and 4 git commands to generate.