1/* <proc_service.h> replacement for systems that don't have it. 2 Copyright 2000 Free Software Foundation, Inc. 3 4 This file is part of GDB. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place - Suite 330, 19 Boston, MA 02111-1307, USA. */ 20 21#ifndef GDB_PROC_SERVICE_H 22#define GDB_PROC_SERVICE_H 23 24#include <sys/types.h> 25 26#ifdef HAVE_PROC_SERVICE_H 27#include <proc_service.h> 28#else 29 30#ifdef HAVE_SYS_PROCFS_H 31#include <sys/procfs.h> 32#endif 33 34#include "gregset.h" 35 36typedef enum 37{ 38 PS_OK, /* Success. */ 39 PS_ERR, /* Generic error. */ 40 PS_BADPID, /* Bad process handle. */ 41 PS_BADLID, /* Bad LWP id. */ 42 PS_BADADDR, /* Bad address. */ 43 PS_NOSYM, /* Symbol not found. */ 44 PS_NOFREGS /* FPU register set not available. */ 45} ps_err_e; 46 47#ifndef HAVE_LWPID_T 48typedef unsigned int lwpid_t; 49#endif 50 51typedef unsigned long paddr_t; 52 53#ifndef HAVE_PSADDR_T 54typedef unsigned long psaddr_t; 55#endif 56 57#ifndef HAVE_PRGREGSET_T 58typedef gdb_gregset_t prgregset_t; 59#endif 60 61#ifndef HAVE_PRFPREGSET_T 62typedef gdb_fpregset_t prfpregset_t; 63#endif 64 65#endif /* HAVE_PROC_SERVICE_H */ 66 67/* Fix-up some broken systems. */ 68 69/* Unfortunately glibc 2.1.3 was released with a broken prfpregset_t 70 type. We let configure check for this lossage, and make 71 appropriate typedefs here. */ 72 73#ifdef PRFPREGSET_T_BROKEN 74typedef gdb_fpregset_t gdb_prfpregset_t; 75#else 76typedef prfpregset_t gdb_prfpregset_t; 77#endif 78 79/* Structure that identifies the target process. */ 80struct ps_prochandle 81{ 82 /* The process id is all we need. */ 83 pid_t pid; 84}; 85 86#endif /* gdb_proc_service.h */ 87