* elf32-mips.c (R_MIPS15_S3): New relocation type.
[deliverable/binutils-gdb.git] / include / remote-sim.h
index d1ded53ea827d5853cc88ae9ddcda3e48232ba67..a4480b49ca577b27f3cd92291855566df080ddd0 100644 (file)
@@ -20,6 +20,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #if !defined (REMOTE_SIM_H)
 #define REMOTE_SIM_H 1
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* This file is used when building stand-alone simulators, so isolate this
    file from gdb.  */
 
@@ -176,15 +180,28 @@ int sim_read PARAMS ((SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length)
 int sim_write PARAMS ((SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length));
 
 
-/* Fetch register REGNO and store the raw (target endian) value in
-   BUF.  */
+/* Fetch register REGNO storing its raw (target endian) value in the
+   LENGTH byte buffer BUF.  Return the actual size of the register or
+   zero if REGNO is not applicable.
+
+   Legacy implementations ignore LENGTH and always return -1.
+
+   If LENGTH does not match the size of REGNO no data is transfered
+   (the actual register size is still returned). */
 
-void sim_fetch_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf));
+int sim_fetch_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf, int length));
 
 
-/* Store register REGNO from the raw (target endian) value in BUF.  */
+/* Store register REGNO from the raw (target endian) value in BUF.
+   Return the actual size of the register or zero if REGNO is not
+   applicable.
 
-void sim_store_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf));
+   Legacy implementations ignore LENGTH and always return -1.
+
+   If LENGTH does not match the size of REGNO no data is transfered
+   (the actual register size is still returned). */
+
+int sim_store_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf, int length));
 
 
 /* Print whatever statistics the simulator has collected.
@@ -219,8 +236,11 @@ int sim_stop PARAMS ((SIM_DESC sd));
    undefined memory region (SIGSEGV); Mis-aligned memory access
    (SIGBUS).
 
-   SIM_SIGNALLED: The simulator encountered target code that requires
-   the signal SIGRC to be delivered to the simulated program.
+   SIM_SIGNALLED: The program has stopped. The simulator has
+   encountered target code that requires the (HOST) signal SIGRC to be
+   delivered to the simulated program.  Ex: `kill (getpid (),
+   TARGET_SIGxxx)'.  Where TARGET_SIGxxx has been translated into a
+   host signal.  FIXME: This is not always possible..
 
    SIM_RUNNING, SIM_POLLING: The return of one of these values
    indicates a problem internal to the simulator. */
@@ -294,4 +314,8 @@ void sim_set_profile_size PARAMS ((int n));
 
 void sim_kill PARAMS ((SIM_DESC sd));
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* !defined (REMOTE_SIM_H) */
This page took 0.024569 seconds and 4 git commands to generate.