1/* <proc_service.h> replacement for systems that don't have it. 2 Copyright (C) 2000, 2007 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 3 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, see <http://www.gnu.org/licenses/>. */ 18 19#ifndef GDB_PROC_SERVICE_H 20#define GDB_PROC_SERVICE_H 21 22#include <sys/types.h> 23 24#ifdef HAVE_PROC_SERVICE_H 25#include <proc_service.h> 26#else 27 28#ifdef HAVE_SYS_PROCFS_H 29#include <sys/procfs.h> 30#endif 31 32#include "gregset.h" 33 34typedef enum 35{ 36 PS_OK, /* Success. */ 37 PS_ERR, /* Generic error. */ 38 PS_BADPID, /* Bad process handle. */ 39 PS_BADLID, /* Bad LWP id. */ 40 PS_BADADDR, /* Bad address. */ 41 PS_NOSYM, /* Symbol not found. */ 42 PS_NOFREGS /* FPU register set not available. */ 43} ps_err_e; 44 45#ifndef HAVE_LWPID_T 46typedef unsigned int lwpid_t; 47#endif 48 49#ifndef HAVE_PSADDR_T 50typedef unsigned long psaddr_t; 51#endif 52 53#ifndef HAVE_PRGREGSET_T 54typedef gdb_gregset_t prgregset_t; 55#endif 56 57#ifndef HAVE_PRFPREGSET_T 58typedef gdb_fpregset_t prfpregset_t; 59#endif 60 61#endif /* HAVE_PROC_SERVICE_H */ 62 63/* Fix-up some broken systems. */ 64 65/* Unfortunately glibc 2.1.3 was released with a broken prfpregset_t 66 type. We let configure check for this lossage, and make 67 appropriate typedefs here. */ 68 69#ifdef PRFPREGSET_T_BROKEN 70typedef gdb_fpregset_t gdb_prfpregset_t; 71#else 72typedef prfpregset_t gdb_prfpregset_t; 73#endif 74 75/* Structure that identifies the target process. */ 76struct ps_prochandle 77{ 78 /* The process id is all we need. */ 79 pid_t pid; 80}; 81 82#endif /* gdb_proc_service.h */ 83