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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [ultra3-xdep.c] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 104 markom
/* Host-dependent code for GDB, for NYU Ultra3 running Sym1 OS.
2
   Copyright (C) 1988, 1989, 1991, 1992 Free Software Foundation, Inc.
3
   Contributed by David Wood (wood@nyu.edu) at New York University.
4
 
5
   This file is part of GDB.
6
 
7
   This program is free software; you can redistribute it and/or modify
8
   it under the terms of the GNU General Public License as published by
9
   the Free Software Foundation; either version 2 of the License, or
10
   (at your option) any later version.
11
 
12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
16
 
17
   You should have received a copy of the GNU General Public License
18
   along with this program; if not, write to the Free Software
19
   Foundation, Inc., 59 Temple Place - Suite 330,
20
   Boston, MA 02111-1307, USA.  */
21
 
22
#define DEBUG
23
#include "defs.h"
24
#include "frame.h"
25
#include "inferior.h"
26
#include "symtab.h"
27
#include "value.h"
28
 
29
#include <sys/types.h>
30
#include <sys/param.h>
31
#include <signal.h>
32
#include <sys/ioctl.h>
33
#include <fcntl.h>
34
 
35
#include "gdbcore.h"
36
 
37
#include <sys/file.h>
38
#include "gdb_stat.h"
39
 
40
/* Assorted operating system circumventions */
41
 
42
#ifdef SYM1
43
 
44
/* FIXME: Kludge this for now. It really should be system call. */
45
int
46
getpagesize ()
47
{
48
  return (8192);
49
}
50
 
51
/* FIXME: Fake out the fcntl() call, which we don't have.  */
52
fcntl (fd, cmd, arg)
53
     int fd, cmd, arg;
54
{
55
 
56
  switch (cmd)
57
    {
58
    case F_GETFL:
59
      return (O_RDONLY);
60
      break;
61
    default:
62
      printf_unfiltered ("Ultra3's fcntl() failing, cmd = %d.\n", cmd);
63
      return (-1);
64
    }
65
}
66
 
67
 
68
/*
69
 * 4.2 Signal support, requires linking with libjobs.
70
 */
71
static int _SigMask;
72
#define sigbit(s)       (1L << ((s)-1))
73
 
74
init_SigMask ()
75
{
76
  /* Taken from the sym1 kernel in machdep.c:startup() */
77
  _SigMask = sigbit (SIGTSTP) | sigbit (SIGTTOU) | sigbit (SIGTTIN) |
78
    sigbit (SIGCHLD) | sigbit (SIGTINT);
79
}
80
 
81
sigmask (signo)
82
     int signo;
83
{
84
  return (1 << (signo - 1));
85
}
86
 
87
sigsetmask (sigmask)
88
     unsigned int sigmask;
89
{
90
  int i, mask = 1;
91
  int lastmask = _SigMask;
92
 
93
  for (i = 0; i < NSIG; i++)
94
    {
95
      if (sigmask & mask)
96
        {
97
          if (!(_SigMask & mask))
98
            {
99
              sighold (i + 1);
100
              _SigMask |= mask;
101
            }
102
        }
103
      else if (_SigMask & mask)
104
        {
105
          sigrelse (i + 1);
106
          _SigMask &= ~mask;
107
        }
108
      mask <<= 1;
109
    }
110
  return (lastmask);
111
}
112
 
113
sigblock (sigmask)
114
     unsigned int sigmask;
115
{
116
  int i, mask = 1;
117
  int lastmask = _SigMask;
118
 
119
  for (i = 0; i < NSIG; i++)
120
    {
121
      if ((sigmask & mask) && !(_SigMask & mask))
122
        {
123
          sighold (i + 1);
124
          _SigMask |= mask;
125
        }
126
      mask <<= 1;
127
    }
128
  return (lastmask);
129
}
130
#endif /* SYM1 */
131
 
132
 
133
/* Initialization code for this module.  */
134
 
135
void
136
_initialize_ultra3 ()
137
{
138
#ifdef SYM1
139
  init_SigMask ();
140
#endif
141
}

powered by: WebSVN 2.1.0

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