Fix whitespace problem in my most recent entry.
[deliverable/binutils-gdb.git] / gdb / ultra3-xdep.c
CommitLineData
c906108c
SS
1/* 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
c5aa993b 5 This file is part of GDB.
c906108c 6
c5aa993b
JM
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.
c906108c 11
c5aa993b
JM
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.
c906108c 16
c5aa993b
JM
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. */
c906108c
SS
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>
c5aa993b 33#include <fcntl.h>
c906108c
SS
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. */
45int
fba45db2 46getpagesize (void)
c5aa993b
JM
47{
48 return (8192);
49}
c906108c
SS
50
51/* FIXME: Fake out the fcntl() call, which we don't have. */
fba45db2 52fcntl (int fd, int cmd, int arg)
c906108c
SS
53{
54
c5aa993b
JM
55 switch (cmd)
56 {
57 case F_GETFL:
58 return (O_RDONLY);
59 break;
60 default:
61 printf_unfiltered ("Ultra3's fcntl() failing, cmd = %d.\n", cmd);
62 return (-1);
63 }
c906108c
SS
64}
65
66
67/*
68 * 4.2 Signal support, requires linking with libjobs.
69 */
c5aa993b 70static int _SigMask;
c906108c
SS
71#define sigbit(s) (1L << ((s)-1))
72
fba45db2 73init_SigMask (void)
c906108c 74{
c5aa993b
JM
75 /* Taken from the sym1 kernel in machdep.c:startup() */
76 _SigMask = sigbit (SIGTSTP) | sigbit (SIGTTOU) | sigbit (SIGTTIN) |
77 sigbit (SIGCHLD) | sigbit (SIGTINT);
c906108c
SS
78}
79
fba45db2 80sigmask (int signo)
c906108c 81{
c5aa993b 82 return (1 << (signo - 1));
c906108c
SS
83}
84
fba45db2 85sigsetmask (unsigned int sigmask)
c906108c 86{
c5aa993b
JM
87 int i, mask = 1;
88 int lastmask = _SigMask;
89
90 for (i = 0; i < NSIG; i++)
91 {
92 if (sigmask & mask)
93 {
94 if (!(_SigMask & mask))
95 {
96 sighold (i + 1);
97 _SigMask |= mask;
98 }
99 }
100 else if (_SigMask & mask)
101 {
102 sigrelse (i + 1);
103 _SigMask &= ~mask;
c906108c 104 }
c5aa993b
JM
105 mask <<= 1;
106 }
107 return (lastmask);
c906108c
SS
108}
109
fba45db2 110sigblock (unsigned int sigmask)
c906108c 111{
c5aa993b
JM
112 int i, mask = 1;
113 int lastmask = _SigMask;
114
115 for (i = 0; i < NSIG; i++)
116 {
117 if ((sigmask & mask) && !(_SigMask & mask))
118 {
119 sighold (i + 1);
120 _SigMask |= mask;
c906108c 121 }
c5aa993b
JM
122 mask <<= 1;
123 }
124 return (lastmask);
c906108c
SS
125}
126#endif /* SYM1 */
127
128
129/* Initialization code for this module. */
130
131void
fba45db2 132_initialize_ultra3 (void)
c906108c
SS
133{
134#ifdef SYM1
c5aa993b 135 init_SigMask ();
c906108c
SS
136#endif
137}
This page took 0.100759 seconds and 4 git commands to generate.