OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [ultra3-xdep.c] - Diff between revs 105 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 105 Rev 1765
/* Host-dependent code for GDB, for NYU Ultra3 running Sym1 OS.
/* Host-dependent code for GDB, for NYU Ultra3 running Sym1 OS.
   Copyright (C) 1988, 1989, 1991, 1992 Free Software Foundation, Inc.
   Copyright (C) 1988, 1989, 1991, 1992 Free Software Foundation, Inc.
   Contributed by David Wood (wood@nyu.edu) at New York University.
   Contributed by David Wood (wood@nyu.edu) at New York University.
 
 
   This file is part of GDB.
   This file is part of GDB.
 
 
   This program is free software; you can redistribute it and/or modify
   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
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
   (at your option) any later version.
 
 
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */
   Boston, MA 02111-1307, USA.  */
 
 
#define DEBUG
#define DEBUG
#include "defs.h"
#include "defs.h"
#include "frame.h"
#include "frame.h"
#include "inferior.h"
#include "inferior.h"
#include "symtab.h"
#include "symtab.h"
#include "value.h"
#include "value.h"
 
 
#include <sys/types.h>
#include <sys/types.h>
#include <sys/param.h>
#include <sys/param.h>
#include <signal.h>
#include <signal.h>
#include <sys/ioctl.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <fcntl.h>
 
 
#include "gdbcore.h"
#include "gdbcore.h"
 
 
#include <sys/file.h>
#include <sys/file.h>
#include "gdb_stat.h"
#include "gdb_stat.h"
 
 
/* Assorted operating system circumventions */
/* Assorted operating system circumventions */
 
 
#ifdef SYM1
#ifdef SYM1
 
 
/* FIXME: Kludge this for now. It really should be system call. */
/* FIXME: Kludge this for now. It really should be system call. */
int
int
getpagesize ()
getpagesize ()
{
{
  return (8192);
  return (8192);
}
}
 
 
/* FIXME: Fake out the fcntl() call, which we don't have.  */
/* FIXME: Fake out the fcntl() call, which we don't have.  */
fcntl (fd, cmd, arg)
fcntl (fd, cmd, arg)
     int fd, cmd, arg;
     int fd, cmd, arg;
{
{
 
 
  switch (cmd)
  switch (cmd)
    {
    {
    case F_GETFL:
    case F_GETFL:
      return (O_RDONLY);
      return (O_RDONLY);
      break;
      break;
    default:
    default:
      printf_unfiltered ("Ultra3's fcntl() failing, cmd = %d.\n", cmd);
      printf_unfiltered ("Ultra3's fcntl() failing, cmd = %d.\n", cmd);
      return (-1);
      return (-1);
    }
    }
}
}
 
 
 
 
/*
/*
 * 4.2 Signal support, requires linking with libjobs.
 * 4.2 Signal support, requires linking with libjobs.
 */
 */
static int _SigMask;
static int _SigMask;
#define sigbit(s)       (1L << ((s)-1))
#define sigbit(s)       (1L << ((s)-1))
 
 
init_SigMask ()
init_SigMask ()
{
{
  /* Taken from the sym1 kernel in machdep.c:startup() */
  /* Taken from the sym1 kernel in machdep.c:startup() */
  _SigMask = sigbit (SIGTSTP) | sigbit (SIGTTOU) | sigbit (SIGTTIN) |
  _SigMask = sigbit (SIGTSTP) | sigbit (SIGTTOU) | sigbit (SIGTTIN) |
    sigbit (SIGCHLD) | sigbit (SIGTINT);
    sigbit (SIGCHLD) | sigbit (SIGTINT);
}
}
 
 
sigmask (signo)
sigmask (signo)
     int signo;
     int signo;
{
{
  return (1 << (signo - 1));
  return (1 << (signo - 1));
}
}
 
 
sigsetmask (sigmask)
sigsetmask (sigmask)
     unsigned int sigmask;
     unsigned int sigmask;
{
{
  int i, mask = 1;
  int i, mask = 1;
  int lastmask = _SigMask;
  int lastmask = _SigMask;
 
 
  for (i = 0; i < NSIG; i++)
  for (i = 0; i < NSIG; i++)
    {
    {
      if (sigmask & mask)
      if (sigmask & mask)
        {
        {
          if (!(_SigMask & mask))
          if (!(_SigMask & mask))
            {
            {
              sighold (i + 1);
              sighold (i + 1);
              _SigMask |= mask;
              _SigMask |= mask;
            }
            }
        }
        }
      else if (_SigMask & mask)
      else if (_SigMask & mask)
        {
        {
          sigrelse (i + 1);
          sigrelse (i + 1);
          _SigMask &= ~mask;
          _SigMask &= ~mask;
        }
        }
      mask <<= 1;
      mask <<= 1;
    }
    }
  return (lastmask);
  return (lastmask);
}
}
 
 
sigblock (sigmask)
sigblock (sigmask)
     unsigned int sigmask;
     unsigned int sigmask;
{
{
  int i, mask = 1;
  int i, mask = 1;
  int lastmask = _SigMask;
  int lastmask = _SigMask;
 
 
  for (i = 0; i < NSIG; i++)
  for (i = 0; i < NSIG; i++)
    {
    {
      if ((sigmask & mask) && !(_SigMask & mask))
      if ((sigmask & mask) && !(_SigMask & mask))
        {
        {
          sighold (i + 1);
          sighold (i + 1);
          _SigMask |= mask;
          _SigMask |= mask;
        }
        }
      mask <<= 1;
      mask <<= 1;
    }
    }
  return (lastmask);
  return (lastmask);
}
}
#endif /* SYM1 */
#endif /* SYM1 */
 
 
 
 
/* Initialization code for this module.  */
/* Initialization code for this module.  */
 
 
void
void
_initialize_ultra3 ()
_initialize_ultra3 ()
{
{
#ifdef SYM1
#ifdef SYM1
  init_SigMask ();
  init_SigMask ();
#endif
#endif
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.