| OLD | NEW |
| 1 /* Target operations for the remote server for GDB. | 1 /* Target operations for the remote server for GDB. |
| 2 Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc. | 2 Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc. |
| 3 | 3 |
| 4 Contributed by MontaVista Software. | 4 Contributed by MontaVista Software. |
| 5 | 5 |
| 6 This file is part of GDB. | 6 This file is part of GDB. |
| 7 | 7 |
| 8 This program is free software; you can redistribute it and/or modify | 8 This program is free software; you can redistribute it and/or modify |
| 9 it under the terms of the GNU General Public License as published by | 9 it under the terms of the GNU General Public License as published by |
| 10 the Free Software Foundation; either version 3 of the License, or | 10 the Free Software Foundation; either version 3 of the License, or |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 { | 46 { |
| 47 ptid_t thread; | 47 ptid_t thread; |
| 48 | 48 |
| 49 /* How to "resume". */ | 49 /* How to "resume". */ |
| 50 enum resume_kind kind; | 50 enum resume_kind kind; |
| 51 | 51 |
| 52 /* If non-zero, send this signal when we resume, or to stop the | 52 /* If non-zero, send this signal when we resume, or to stop the |
| 53 thread. If stopping a thread, and this is 0, the target should | 53 thread. If stopping a thread, and this is 0, the target should |
| 54 stop the thread however it best decides to (e.g., SIGSTOP on | 54 stop the thread however it best decides to (e.g., SIGSTOP on |
| 55 linux; SuspendThread on win32). This is a host signal value (not | 55 linux; SuspendThread on win32). This is a host signal value (not |
| 56 enum target_signal). */ | 56 enum gdb_signal). */ |
| 57 int sig; | 57 int sig; |
| 58 }; | 58 }; |
| 59 | 59 |
| 60 /* Generally, what has the program done? */ | 60 /* Generally, what has the program done? */ |
| 61 enum target_waitkind | 61 enum target_waitkind |
| 62 { | 62 { |
| 63 /* The program has exited. The exit status is in | 63 /* The program has exited. The exit status is in |
| 64 value.integer. */ | 64 value.integer. */ |
| 65 TARGET_WAITKIND_EXITED, | 65 TARGET_WAITKIND_EXITED, |
| 66 | 66 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 struct target_waitstatus | 92 struct target_waitstatus |
| 93 { | 93 { |
| 94 enum target_waitkind kind; | 94 enum target_waitkind kind; |
| 95 | 95 |
| 96 /* Forked child pid, execd pathname, exit status or signal number. */ | 96 /* Forked child pid, execd pathname, exit status or signal number. */ |
| 97 union | 97 union |
| 98 { | 98 { |
| 99 int integer; | 99 int integer; |
| 100 » enum target_signal sig; | 100 » enum gdb_signal sig; |
| 101 ptid_t related_pid; | 101 ptid_t related_pid; |
| 102 char *execd_pathname; | 102 char *execd_pathname; |
| 103 } | 103 } |
| 104 value; | 104 value; |
| 105 }; | 105 }; |
| 106 | 106 |
| 107 /* Options that can be passed to target_ops->wait. */ | 107 /* Options that can be passed to target_ops->wait. */ |
| 108 | 108 |
| 109 #define TARGET_WNOHANG 1 | 109 #define TARGET_WNOHANG 1 |
| 110 | 110 |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 int (*supports_disable_randomization) (void); | 387 int (*supports_disable_randomization) (void); |
| 388 | 388 |
| 389 /* Return the minimum length of an instruction that can be safely overwritten | 389 /* Return the minimum length of an instruction that can be safely overwritten |
| 390 for use as a fast tracepoint. */ | 390 for use as a fast tracepoint. */ |
| 391 int (*get_min_fast_tracepoint_insn_len) (void); | 391 int (*get_min_fast_tracepoint_insn_len) (void); |
| 392 | 392 |
| 393 /* Read solib info on SVR4 platforms. */ | 393 /* Read solib info on SVR4 platforms. */ |
| 394 int (*qxfer_libraries_svr4) (const char *annex, unsigned char *readbuf, | 394 int (*qxfer_libraries_svr4) (const char *annex, unsigned char *readbuf, |
| 395 unsigned const char *writebuf, | 395 unsigned const char *writebuf, |
| 396 CORE_ADDR offset, int len); | 396 CORE_ADDR offset, int len); |
| 397 |
| 398 /* Return true if target supports debugging agent. */ |
| 399 int (*supports_agent) (void); |
| 397 }; | 400 }; |
| 398 | 401 |
| 399 extern struct target_ops *the_target; | 402 extern struct target_ops *the_target; |
| 400 | 403 |
| 401 void set_target_ops (struct target_ops *); | 404 void set_target_ops (struct target_ops *); |
| 402 | 405 |
| 403 #define create_inferior(program, args) \ | 406 #define create_inferior(program, args) \ |
| 404 (*the_target->create_inferior) (program, args) | 407 (*the_target->create_inferior) (program, args) |
| 405 | 408 |
| 406 #define myattach(pid) \ | 409 #define myattach(pid) \ |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 adjusted_insn_addr_end, \ | 510 adjusted_insn_addr_end, \ |
| 508 err) | 511 err) |
| 509 | 512 |
| 510 #define target_emit_ops() \ | 513 #define target_emit_ops() \ |
| 511 (the_target->emit_ops ? (*the_target->emit_ops) () : NULL) | 514 (the_target->emit_ops ? (*the_target->emit_ops) () : NULL) |
| 512 | 515 |
| 513 #define target_supports_disable_randomization() \ | 516 #define target_supports_disable_randomization() \ |
| 514 (the_target->supports_disable_randomization ? \ | 517 (the_target->supports_disable_randomization ? \ |
| 515 (*the_target->supports_disable_randomization) () : 0) | 518 (*the_target->supports_disable_randomization) () : 0) |
| 516 | 519 |
| 520 #define target_supports_agent() \ |
| 521 (the_target->supports_agent ? \ |
| 522 (*the_target->supports_agent) () : 0) |
| 523 |
| 517 /* Start non-stop mode, returns 0 on success, -1 on failure. */ | 524 /* Start non-stop mode, returns 0 on success, -1 on failure. */ |
| 518 | 525 |
| 519 int start_non_stop (int nonstop); | 526 int start_non_stop (int nonstop); |
| 520 | 527 |
| 521 ptid_t mywait (ptid_t ptid, struct target_waitstatus *ourstatus, int options, | 528 ptid_t mywait (ptid_t ptid, struct target_waitstatus *ourstatus, int options, |
| 522 int connected_wait); | 529 int connected_wait); |
| 523 | 530 |
| 524 #define prepare_to_access_memory() \ | 531 #define prepare_to_access_memory() \ |
| 525 (the_target->prepare_to_access_memory \ | 532 (the_target->prepare_to_access_memory \ |
| 526 ? (*the_target->prepare_to_access_memory) () \ | 533 ? (*the_target->prepare_to_access_memory) () \ |
| 527 : 0) | 534 : 0) |
| 528 | 535 |
| 529 #define done_accessing_memory() \ | 536 #define done_accessing_memory() \ |
| 530 do \ | 537 do \ |
| 531 { \ | 538 { \ |
| 532 if (the_target->done_accessing_memory) \ | 539 if (the_target->done_accessing_memory) \ |
| 533 (*the_target->done_accessing_memory) (); \ | 540 (*the_target->done_accessing_memory) (); \ |
| 534 } while (0) | 541 } while (0) |
| 535 | 542 |
| 543 #define target_core_of_thread(ptid) \ |
| 544 (the_target->core_of_thread ? (*the_target->core_of_thread) (ptid) \ |
| 545 : -1) |
| 546 |
| 536 int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len); | 547 int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len); |
| 537 | 548 |
| 538 int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr, | 549 int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr, |
| 539 int len); | 550 int len); |
| 540 | 551 |
| 541 void set_desired_inferior (int id); | 552 void set_desired_inferior (int id); |
| 542 | 553 |
| 543 const char *target_pid_to_str (ptid_t); | 554 const char *target_pid_to_str (ptid_t); |
| 544 | 555 |
| 545 const char *target_waitstatus_to_string (const struct target_waitstatus *); | 556 const char *target_waitstatus_to_string (const struct target_waitstatus *); |
| 546 | 557 |
| 547 #endif /* TARGET_H */ | 558 #endif /* TARGET_H */ |
| OLD | NEW |