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 36 typedef 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 48 typedef unsigned int lwpid_t; 49 #endif 50 51 typedef unsigned long paddr_t; 52 53 #ifndef HAVE_PSADDR_T 54 typedef unsigned long psaddr_t; 55 #endif 56 57 #ifndef HAVE_PRGREGSET_T 58 typedef gdb_gregset_t prgregset_t; 59 #endif 60 61 #ifndef HAVE_PRFPREGSET_T 62 typedef 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 74 typedef gdb_fpregset_t gdb_prfpregset_t; 75 #else 76 typedef prfpregset_t gdb_prfpregset_t; 77 #endif 78 79 /* Structure that identifies the target process. */ 80 struct ps_prochandle 81 { 82 /* The process id is all we need. */ 83 pid_t pid; 84 }; 85 86 #endif /* gdb_proc_service.h */ 87