/* Native definitions for alpha running OSF/1-2.x, using procfs.
   Copyright 1995, 1996, 2000 Free Software Foundation, Inc.

   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
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   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.  */

/* Get generic OSF/1 definitions.  */
#include "alpha/nm-osf.h"

/* OSF/1-2.x has optional /proc support, try to use it instead of ptrace.  */
#define USE_PROC_FS
#define HAVE_OPTIONAL_PROC_FS

/* OSF/1 doesn't provide the standard fault definitions, so don't use them.  */
#define FAULTED_USE_SIGINFO

/* Don't trace faults under OSF/1, rely on the posting of the appropriate
   signal if fault tracing is disabled.
   Tracing T_IFAULT under Alpha OSF/1 causes a `floating point enable'
   fault from which we cannot continue (except by disabling the
   tracing).
   And as OSF/1 doesn't provide the standard fault definitions, the
   mapping of faults to appropriate signals in procfs_wait is difficult.  */
#define PROCFS_DONT_TRACE_FAULTS

/* Work around some peculiarities in the OSF/1 procfs implementation.  */
#define PROCFS_SIGPEND_OFFSET
#define PROCFS_NEED_PIOCSSIG_FOR_KILL
#define PROCFS_DONT_PIOCSSIG_CURSIG

/* Return sizeof user struct to callers in less machine dependent routines */

#define KERNEL_U_SIZE kernel_u_size()
extern int kernel_u_size (void);

/* poll() doesn't seem to work properly for /proc in this version of the OS.
   If we only specify POLLPRI, things hang.  It seems to get better when we set
   POLLOUT, but that always returns POLLNVAL!!!  Also, POLLOUT causes problems
   on other OSes.  */

#define LOSING_POLL
