X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Ftarget.h;h=17137dcb23e958f70180b0998db33aa027e83297;hb=6aba47ca06d9150c6196a374b745c2711b46e045;hp=770ffcbbb055846ed20b90808a28aab2c1a87911;hpb=c3e735a6a3d7b849b44f102a0c3e2722d49666b7;p=thirdparty%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index 770ffcbbb05..17137dcb23e 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -1,6 +1,5 @@ /* Target operations for the remote server for GDB. - Copyright 2002, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. Contributed by MontaVista Software. @@ -18,8 +17,8 @@ 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. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ #ifndef TARGET_H #define TARGET_H @@ -31,7 +30,7 @@ struct thread_resume { - int thread; + unsigned long thread; /* If non-zero, leave this thread stopped. */ int leave_stopped; @@ -61,7 +60,7 @@ struct target_ops PID is the process ID to attach to, specified by the user or a higher layer. */ - int (*attach) (int pid); + int (*attach) (unsigned long pid); /* Kill all inferiors. */ @@ -73,7 +72,7 @@ struct target_ops /* Return 1 iff the thread with process ID PID is alive. */ - int (*thread_alive) (int pid); + int (*thread_alive) (unsigned long pid); /* Resume the inferior process. */ @@ -81,9 +80,11 @@ struct target_ops /* Wait for the inferior process to change state. - STATUSP will be filled in with a response code to send to GDB. + STATUS will be filled in with a response code to send to GDB. - Returns the signal which caused the process to stop. */ + Returns the signal which caused the process to stop, in the + remote protocol numbering (e.g. TARGET_SIGNAL_STOP), or the + exit code as an integer if *STATUS is 'W'. */ unsigned char (*wait) (char *status); @@ -106,7 +107,7 @@ struct target_ops Returns 0 on success and errno on failure. */ - int (*read_memory) (CORE_ADDR memaddr, char *myaddr, int len); + int (*read_memory) (CORE_ADDR memaddr, unsigned char *myaddr, int len); /* Write memory to the inferior process. This should generally be called through write_inferior_memory, which handles breakpoint shadowing. @@ -115,7 +116,8 @@ struct target_ops Returns 0 on success and errno on failure. */ - int (*write_memory) (CORE_ADDR memaddr, const char *myaddr, int len); + int (*write_memory) (CORE_ADDR memaddr, const unsigned char *myaddr, + int len); /* Query GDB for the values of any symbols we're interested in. This function is called whenever we receive a "qSymbols::" @@ -132,7 +134,43 @@ struct target_ops Read LEN bytes at OFFSET into a buffer at MYADDR. */ - int (*read_auxv) (CORE_ADDR offset, char *myaddr, unsigned int len); + int (*read_auxv) (CORE_ADDR offset, unsigned char *myaddr, + unsigned int len); + + /* Insert and remove a hardware watchpoint. + Returns 0 on success, -1 on failure and 1 on unsupported. + The type is coded as follows: + 2 = write watchpoint + 3 = read watchpoint + 4 = access watchpoint + */ + + int (*insert_watchpoint) (char type, CORE_ADDR addr, int len); + int (*remove_watchpoint) (char type, CORE_ADDR addr, int len); + + /* Returns 1 if target was stopped due to a watchpoint hit, 0 otherwise. */ + + int (*stopped_by_watchpoint) (void); + + /* Returns the address associated with the watchpoint that hit, if any; + returns 0 otherwise. */ + + CORE_ADDR (*stopped_data_address) (void); + + /* Reports the text, data offsets of the executable. This is + needed for uclinux where the executable is relocated during load + time. */ + + int (*read_offsets) (CORE_ADDR *text, CORE_ADDR *data); + + /* Fetch the address associated with a specific thread local storage + area, determined by the specified THREAD, OFFSET, and LOAD_MODULE. + Stores it in *ADDRESS and returns zero on success; otherwise returns + an error code. A return value of -1 means this system does not + support the operation. */ + + int (*get_tls_address) (struct thread_info *thread, CORE_ADDR offset, + CORE_ADDR load_module, CORE_ADDR *address); }; extern struct target_ops *the_target; @@ -162,9 +200,10 @@ void set_target_ops (struct target_ops *); unsigned char mywait (char *statusp, int connected_wait); -int read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len); +int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len); -int write_inferior_memory (CORE_ADDR memaddr, const char *myaddr, int len); +int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr, + int len); void set_desired_inferior (int id);