Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(731)

Side by Side Diff: gdb/gdbarch.h

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/gdb_vecs.h ('k') | gdb/gdbarch.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED */ 1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED */
2 2
3 /* Dynamic architecture support for GDB, the GNU debugger. 3 /* Dynamic architecture support for GDB, the GNU debugger.
4 4
5 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 5 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2007, 2008, 2009 Free Software Foundation, Inc. 6 2007, 2008, 2009 Free Software Foundation, Inc.
7 7
8 This file is part of GDB. 8 This file is part of GDB.
9 9
10 This program is free software; you can redistribute it and/or modify 10 This program is free software; you can redistribute it and/or modify
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 struct disassemble_info; 48 struct disassemble_info;
49 struct target_ops; 49 struct target_ops;
50 struct obstack; 50 struct obstack;
51 struct bp_target_info; 51 struct bp_target_info;
52 struct target_desc; 52 struct target_desc;
53 struct displaced_step_closure; 53 struct displaced_step_closure;
54 struct core_regset_section; 54 struct core_regset_section;
55 struct syscall; 55 struct syscall;
56 struct agent_expr; 56 struct agent_expr;
57 struct axs_value; 57 struct axs_value;
58 struct stap_parse_info;
58 59
59 /* The architecture associated with the connection to the target. 60 /* The architecture associated with the connection to the target.
60 61
61 The architecture vector provides some information that is really 62 The architecture vector provides some information that is really
62 a property of the target: The layout of certain packets, for instance; 63 a property of the target: The layout of certain packets, for instance;
63 or the solib_ops vector. Etc. To differentiate architecture accesses 64 or the solib_ops vector. Etc. To differentiate architecture accesses
64 to per-target properties from per-thread/per-frame/per-objfile properties, 65 to per-target properties from per-thread/per-frame/per-objfile properties,
65 accesses to per-target properties should be made through target_gdbarch. 66 accesses to per-target properties should be made through target_gdbarch.
66 67
67 Eventually, when support for multiple targets is implemented in 68 Eventually, when support for multiple targets is implemented in
68 GDB, this global should be made target-specific. */ 69 GDB, this global should be made target-specific. */
69 extern struct gdbarch *target_gdbarch; 70 extern struct gdbarch *target_gdbarch;
70 71
72 /* Callback type for the 'iterate_over_objfiles_in_search_order'
73 gdbarch method. */
74
75 typedef int (iterate_over_objfiles_in_search_order_cb_ftype)
76 (struct objfile *objfile, void *cb_data);
77
71 78
72 /* The following are pre-initialized by GDBARCH. */ 79 /* The following are pre-initialized by GDBARCH. */
73 80
74 extern const struct bfd_arch_info * gdbarch_bfd_arch_info (struct gdbarch *gdbar ch); 81 extern const struct bfd_arch_info * gdbarch_bfd_arch_info (struct gdbarch *gdbar ch);
75 /* set_gdbarch_bfd_arch_info() - not applicable - pre-initialized. */ 82 /* set_gdbarch_bfd_arch_info() - not applicable - pre-initialized. */
76 83
77 extern int gdbarch_byte_order (struct gdbarch *gdbarch); 84 extern int gdbarch_byte_order (struct gdbarch *gdbarch);
78 /* set_gdbarch_byte_order() - not applicable - pre-initialized. */ 85 /* set_gdbarch_byte_order() - not applicable - pre-initialized. */
79 86
80 extern int gdbarch_byte_order_for_code (struct gdbarch *gdbarch); 87 extern int gdbarch_byte_order_for_code (struct gdbarch *gdbarch);
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 typedef void (gdbarch_address_to_pointer_ftype) (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr); 433 typedef void (gdbarch_address_to_pointer_ftype) (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr);
427 extern void gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *ty pe, gdb_byte *buf, CORE_ADDR addr); 434 extern void gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *ty pe, gdb_byte *buf, CORE_ADDR addr);
428 extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_add ress_to_pointer_ftype *address_to_pointer); 435 extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_add ress_to_pointer_ftype *address_to_pointer);
429 436
430 extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch); 437 extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch);
431 438
432 typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct gdbarch *gdbarch, s truct type *type, const gdb_byte *buf); 439 typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct gdbarch *gdbarch, s truct type *type, const gdb_byte *buf);
433 extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct typ e *type, const gdb_byte *buf); 440 extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct typ e *type, const gdb_byte *buf);
434 extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_int eger_to_address_ftype *integer_to_address); 441 extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_int eger_to_address_ftype *integer_to_address);
435 442
436 /* Return the return-value convention that will be used by FUNCTYPE 443 /* Return the return-value convention that will be used by FUNCTION
437 to return a value of type VALTYPE. FUNCTYPE may be NULL in which 444 to return a value of type VALTYPE. FUNCTION may be NULL in which
438 case the return convention is computed based only on VALTYPE. 445 case the return convention is computed based only on VALTYPE.
439 446
440 If READBUF is not NULL, extract the return value and save it in this buffer. 447 If READBUF is not NULL, extract the return value and save it in this buffer.
441 448
442 If WRITEBUF is not NULL, it contains a return value which will be 449 If WRITEBUF is not NULL, it contains a return value which will be
443 stored into the appropriate register. This can be used when we want 450 stored into the appropriate register. This can be used when we want
444 to force the value returned by a function (see the "return" command 451 to force the value returned by a function (see the "return" command
445 for instance). */ 452 for instance). */
446 453
447 extern int gdbarch_return_value_p (struct gdbarch *gdbarch); 454 extern int gdbarch_return_value_p (struct gdbarch *gdbarch);
448 455
449 typedef enum return_value_convention (gdbarch_return_value_ftype) (struct gdbarc h *gdbarch, struct type *functype, struct type *valtype, struct regcache *regcac he, gdb_byte *readbuf, const gdb_byte *writebuf); 456 typedef enum return_value_convention (gdbarch_return_value_ftype) (struct gdbarc h *gdbarch, struct value *function, struct type *valtype, struct regcache *regca che, gdb_byte *readbuf, const gdb_byte *writebuf);
450 extern enum return_value_convention gdbarch_return_value (struct gdbarch *gdbarc h, struct type *functype, struct type *valtype, struct regcache *regcache, gdb_b yte *readbuf, const gdb_byte *writebuf); 457 extern enum return_value_convention gdbarch_return_value (struct gdbarch *gdbarc h, struct value *function, struct type *valtype, struct regcache *regcache, gdb_ byte *readbuf, const gdb_byte *writebuf);
451 extern void set_gdbarch_return_value (struct gdbarch *gdbarch, gdbarch_return_va lue_ftype *return_value); 458 extern void set_gdbarch_return_value (struct gdbarch *gdbarch, gdbarch_return_va lue_ftype *return_value);
452 459
460 /* Return true if the return value of function is stored in the first hidden
461 parameter. In theory, this feature should be language-dependent, specified
462 by language and its ABI, such as C++. Unfortunately, compiler may
463 implement it to a target-dependent feature. So that we need such hook here
464 to be aware of this in GDB. */
465
466 typedef int (gdbarch_return_in_first_hidden_param_p_ftype) (struct gdbarch *gdba rch, struct type *type);
467 extern int gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, stru ct type *type);
468 extern void set_gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p);
469
453 typedef CORE_ADDR (gdbarch_skip_prologue_ftype) (struct gdbarch *gdbarch, CORE_A DDR ip); 470 typedef CORE_ADDR (gdbarch_skip_prologue_ftype) (struct gdbarch *gdbarch, CORE_A DDR ip);
454 extern CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip); 471 extern CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip);
455 extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro logue_ftype *skip_prologue); 472 extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro logue_ftype *skip_prologue);
456 473
457 extern int gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch); 474 extern int gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch);
458 475
459 typedef CORE_ADDR (gdbarch_skip_main_prologue_ftype) (struct gdbarch *gdbarch, C ORE_ADDR ip); 476 typedef CORE_ADDR (gdbarch_skip_main_prologue_ftype) (struct gdbarch *gdbarch, C ORE_ADDR ip);
460 extern CORE_ADDR gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip); 477 extern CORE_ADDR gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip);
461 extern void set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch, gdbarch_ski p_main_prologue_ftype *skip_main_prologue); 478 extern void set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch, gdbarch_ski p_main_prologue_ftype *skip_main_prologue);
462 479
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 /* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER 641 /* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER
625 evaluates non-zero, this is the address where the debugger will place 642 evaluates non-zero, this is the address where the debugger will place
626 a step-resume breakpoint to get us past the dynamic linker. */ 643 a step-resume breakpoint to get us past the dynamic linker. */
627 644
628 typedef CORE_ADDR (gdbarch_skip_solib_resolver_ftype) (struct gdbarch *gdbarch, CORE_ADDR pc); 645 typedef CORE_ADDR (gdbarch_skip_solib_resolver_ftype) (struct gdbarch *gdbarch, CORE_ADDR pc);
629 extern CORE_ADDR gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc); 646 extern CORE_ADDR gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc);
630 extern void set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, gdbarch_sk ip_solib_resolver_ftype *skip_solib_resolver); 647 extern void set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, gdbarch_sk ip_solib_resolver_ftype *skip_solib_resolver);
631 648
632 /* Some systems also have trampoline code for returning from shared libs. */ 649 /* Some systems also have trampoline code for returning from shared libs. */
633 650
634 typedef int (gdbarch_in_solib_return_trampoline_ftype) (struct gdbarch *gdbarch, CORE_ADDR pc, char *name); 651 typedef int (gdbarch_in_solib_return_trampoline_ftype) (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name);
635 extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADD R pc, char *name); 652 extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADD R pc, const char *name);
636 extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdb arch_in_solib_return_trampoline_ftype *in_solib_return_trampoline); 653 extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdb arch_in_solib_return_trampoline_ftype *in_solib_return_trampoline);
637 654
638 /* A target might have problems with watchpoints as soon as the stack 655 /* A target might have problems with watchpoints as soon as the stack
639 frame of the current function has been destroyed. This mostly happens 656 frame of the current function has been destroyed. This mostly happens
640 as the first action in a funtion's epilogue. in_function_epilogue_p() 657 as the first action in a funtion's epilogue. in_function_epilogue_p()
641 is defined to return a non-zero value if either the given addr is one 658 is defined to return a non-zero value if either the given addr is one
642 instruction after the stack destroying instruction up to the trailing 659 instruction after the stack destroying instruction up to the trailing
643 return instruction or if we can figure out that the stack frame has 660 return instruction or if we can figure out that the stack frame has
644 already been invalidated regardless of the value of addr. Targets 661 already been invalidated regardless of the value of addr. Targets
645 which don't suffer from that problem could just let this functionality 662 which don't suffer from that problem could just let this functionality
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 719
703 typedef const struct regset * (gdbarch_regset_from_core_section_ftype) (struct g dbarch *gdbarch, const char *sect_name, size_t sect_size); 720 typedef const struct regset * (gdbarch_regset_from_core_section_ftype) (struct g dbarch *gdbarch, const char *sect_name, size_t sect_size);
704 extern const struct regset * gdbarch_regset_from_core_section (struct gdbarch *g dbarch, const char *sect_name, size_t sect_size); 721 extern const struct regset * gdbarch_regset_from_core_section (struct gdbarch *g dbarch, const char *sect_name, size_t sect_size);
705 extern void set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch, gdbar ch_regset_from_core_section_ftype *regset_from_core_section); 722 extern void set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch, gdbar ch_regset_from_core_section_ftype *regset_from_core_section);
706 723
707 /* Supported register notes in a core file. */ 724 /* Supported register notes in a core file. */
708 725
709 extern struct core_regset_section * gdbarch_core_regset_sections (struct gdbarch *gdbarch); 726 extern struct core_regset_section * gdbarch_core_regset_sections (struct gdbarch *gdbarch);
710 extern void set_gdbarch_core_regset_sections (struct gdbarch *gdbarch, struct co re_regset_section * core_regset_sections); 727 extern void set_gdbarch_core_regset_sections (struct gdbarch *gdbarch, struct co re_regset_section * core_regset_sections);
711 728
729 /* Create core file notes */
730
731 extern int gdbarch_make_corefile_notes_p (struct gdbarch *gdbarch);
732
733 typedef char * (gdbarch_make_corefile_notes_ftype) (struct gdbarch *gdbarch, bfd *obfd, int *note_size);
734 extern char * gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, i nt *note_size);
735 extern void set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, gdbarch_ma ke_corefile_notes_ftype *make_corefile_notes);
736
737 /* Find core file memory regions */
738
739 extern int gdbarch_find_memory_regions_p (struct gdbarch *gdbarch);
740
741 typedef int (gdbarch_find_memory_regions_ftype) (struct gdbarch *gdbarch, find_m emory_region_ftype func, void *data);
742 extern int gdbarch_find_memory_regions (struct gdbarch *gdbarch, find_memory_reg ion_ftype func, void *data);
743 extern void set_gdbarch_find_memory_regions (struct gdbarch *gdbarch, gdbarch_fi nd_memory_regions_ftype *find_memory_regions);
744
712 /* Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list from 745 /* Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list from
713 core file into buffer READBUF with length LEN. */ 746 core file into buffer READBUF with length LEN. */
714 747
715 extern int gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch); 748 extern int gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch);
716 749
717 typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdba rch, gdb_byte *readbuf, ULONGEST offset, LONGEST len); 750 typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdba rch, gdb_byte *readbuf, ULONGEST offset, LONGEST len);
718 extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_ byte *readbuf, ULONGEST offset, LONGEST len); 751 extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_ byte *readbuf, ULONGEST offset, LONGEST len);
719 extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb arch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries); 752 extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb arch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries);
720 753
721 /* How the core target converts a PTID from a core file to a string. */ 754 /* How the core target converts a PTID from a core file to a string. */
(...skipping 25 matching lines...) Expand all
747 extern void set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch, int vbit_in_delt a); 780 extern void set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch, int vbit_in_delt a);
748 781
749 /* Advance PC to next instruction in order to skip a permanent breakpoint. */ 782 /* Advance PC to next instruction in order to skip a permanent breakpoint. */
750 783
751 extern int gdbarch_skip_permanent_breakpoint_p (struct gdbarch *gdbarch); 784 extern int gdbarch_skip_permanent_breakpoint_p (struct gdbarch *gdbarch);
752 785
753 typedef void (gdbarch_skip_permanent_breakpoint_ftype) (struct regcache *regcach e); 786 typedef void (gdbarch_skip_permanent_breakpoint_ftype) (struct regcache *regcach e);
754 extern void gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct r egcache *regcache); 787 extern void gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct r egcache *regcache);
755 extern void set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, gdba rch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint); 788 extern void set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, gdba rch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint);
756 789
757 /* The maximum length of an instruction on this architecture. */ 790 /* The maximum length of an instruction on this architecture in bytes. */
758 791
759 extern int gdbarch_max_insn_length_p (struct gdbarch *gdbarch); 792 extern int gdbarch_max_insn_length_p (struct gdbarch *gdbarch);
760 793
761 extern ULONGEST gdbarch_max_insn_length (struct gdbarch *gdbarch); 794 extern ULONGEST gdbarch_max_insn_length (struct gdbarch *gdbarch);
762 extern void set_gdbarch_max_insn_length (struct gdbarch *gdbarch, ULONGEST max_i nsn_length); 795 extern void set_gdbarch_max_insn_length (struct gdbarch *gdbarch, ULONGEST max_i nsn_length);
763 796
764 /* Copy the instruction at FROM to TO, and make any adjustments 797 /* Copy the instruction at FROM to TO, and make any adjustments
765 necessary to single-step it at that address. 798 necessary to single-step it at that address.
766 799
767 REGS holds the state the thread's registers will have before 800 REGS holds the state the thread's registers will have before
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 extern int gdbarch_core_read_description_p (struct gdbarch *gdbarch); 919 extern int gdbarch_core_read_description_p (struct gdbarch *gdbarch);
887 920
888 typedef const struct target_desc * (gdbarch_core_read_description_ftype) (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd); 921 typedef const struct target_desc * (gdbarch_core_read_description_ftype) (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd);
889 extern const struct target_desc * gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd); 922 extern const struct target_desc * gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd);
890 extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_ core_read_description_ftype *core_read_description); 923 extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_ core_read_description_ftype *core_read_description);
891 924
892 /* Handle special encoding of static variables in stabs debug info. */ 925 /* Handle special encoding of static variables in stabs debug info. */
893 926
894 extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch); 927 extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch);
895 928
896 typedef char * (gdbarch_static_transform_name_ftype) (char *name); 929 typedef const char * (gdbarch_static_transform_name_ftype) (const char *name);
897 extern char * gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name ); 930 extern const char * gdbarch_static_transform_name (struct gdbarch *gdbarch, cons t char *name);
898 extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_ static_transform_name_ftype *static_transform_name); 931 extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_ static_transform_name_ftype *static_transform_name);
899 932
900 /* Set if the address in N_SO or N_FUN stabs may be zero. */ 933 /* Set if the address in N_SO or N_FUN stabs may be zero. */
901 934
902 extern int gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch); 935 extern int gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch);
903 extern void set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch, in t sofun_address_maybe_missing); 936 extern void set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch, in t sofun_address_maybe_missing);
904 937
905 /* Parse the instruction at ADDR storing in the record execution log 938 /* Parse the instruction at ADDR storing in the record execution log
906 the registers REGCACHE and memory ranges that will be affected when 939 the registers REGCACHE and memory ranges that will be affected when
907 the instruction executes, along with their current values. 940 the instruction executes, along with their current values.
908 Return -1 if something goes wrong, 0 otherwise. */ 941 Return -1 if something goes wrong, 0 otherwise. */
909 942
910 extern int gdbarch_process_record_p (struct gdbarch *gdbarch); 943 extern int gdbarch_process_record_p (struct gdbarch *gdbarch);
911 944
912 typedef int (gdbarch_process_record_ftype) (struct gdbarch *gdbarch, struct regc ache *regcache, CORE_ADDR addr); 945 typedef int (gdbarch_process_record_ftype) (struct gdbarch *gdbarch, struct regc ache *regcache, CORE_ADDR addr);
913 extern int gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *reg cache, CORE_ADDR addr); 946 extern int gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *reg cache, CORE_ADDR addr);
914 extern void set_gdbarch_process_record (struct gdbarch *gdbarch, gdbarch_process _record_ftype *process_record); 947 extern void set_gdbarch_process_record (struct gdbarch *gdbarch, gdbarch_process _record_ftype *process_record);
915 948
916 /* Save process state after a signal. 949 /* Save process state after a signal.
917 Return -1 if something goes wrong, 0 otherwise. */ 950 Return -1 if something goes wrong, 0 otherwise. */
918 951
919 extern int gdbarch_process_record_signal_p (struct gdbarch *gdbarch); 952 extern int gdbarch_process_record_signal_p (struct gdbarch *gdbarch);
920 953
921 typedef int (gdbarch_process_record_signal_ftype) (struct gdbarch *gdbarch, stru ct regcache *regcache, enum target_signal signal); 954 typedef int (gdbarch_process_record_signal_ftype) (struct gdbarch *gdbarch, stru ct regcache *regcache, enum gdb_signal signal);
922 extern int gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcac he *regcache, enum target_signal signal); 955 extern int gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcac he *regcache, enum gdb_signal signal);
923 extern void set_gdbarch_process_record_signal (struct gdbarch *gdbarch, gdbarch_ process_record_signal_ftype *process_record_signal); 956 extern void set_gdbarch_process_record_signal (struct gdbarch *gdbarch, gdbarch_ process_record_signal_ftype *process_record_signal);
924 957
925 /* Signal translation: translate inferior's signal (host's) number into 958 /* Signal translation: translate inferior's signal (target's) number
926 GDB's representation. */ 959 into GDB's representation. The implementation of this method must
960 be host independent. IOW, don't rely on symbols of the NAT_FILE
961 header (the nm-*.h files), the host <signal.h> header, or similar
962 headers. This is mainly used when cross-debugging core files ---
963 "Live" targets hide the translation behind the target interface
964 (target_wait, target_resume, etc.). */
927 965
928 typedef enum target_signal (gdbarch_target_signal_from_host_ftype) (struct gdbar ch *gdbarch, int signo); 966 extern int gdbarch_gdb_signal_from_target_p (struct gdbarch *gdbarch);
929 extern enum target_signal gdbarch_target_signal_from_host (struct gdbarch *gdbar ch, int signo);
930 extern void set_gdbarch_target_signal_from_host (struct gdbarch *gdbarch, gdbarc h_target_signal_from_host_ftype *target_signal_from_host);
931 967
932 /* Signal translation: translate GDB's signal number into inferior's host 968 typedef enum gdb_signal (gdbarch_gdb_signal_from_target_ftype) (struct gdbarch * gdbarch, int signo);
933 signal number. */ 969 extern enum gdb_signal gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, int signo);
934 970 extern void set_gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, gdbarch _gdb_signal_from_target_ftype *gdb_signal_from_target);
935 typedef int (gdbarch_target_signal_to_host_ftype) (struct gdbarch *gdbarch, enum target_signal ts);
936 extern int gdbarch_target_signal_to_host (struct gdbarch *gdbarch, enum target_s ignal ts);
937 extern void set_gdbarch_target_signal_to_host (struct gdbarch *gdbarch, gdbarch_ target_signal_to_host_ftype *target_signal_to_host);
938 971
939 /* Extra signal info inspection. 972 /* Extra signal info inspection.
940 973
941 Return a type suitable to inspect extra signal information. */ 974 Return a type suitable to inspect extra signal information. */
942 975
943 extern int gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch); 976 extern int gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch);
944 977
945 typedef struct type * (gdbarch_get_siginfo_type_ftype) (struct gdbarch *gdbarch) ; 978 typedef struct type * (gdbarch_get_siginfo_type_ftype) (struct gdbarch *gdbarch) ;
946 extern struct type * gdbarch_get_siginfo_type (struct gdbarch *gdbarch); 979 extern struct type * gdbarch_get_siginfo_type (struct gdbarch *gdbarch);
947 extern void set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch, gdbarch_get_s iginfo_type_ftype *get_siginfo_type); 980 extern void set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch, gdbarch_get_s iginfo_type_ftype *get_siginfo_type);
948 981
949 /* Record architecture-specific information from the symbol table. */ 982 /* Record architecture-specific information from the symbol table. */
950 983
951 extern int gdbarch_record_special_symbol_p (struct gdbarch *gdbarch); 984 extern int gdbarch_record_special_symbol_p (struct gdbarch *gdbarch);
952 985
953 typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, str uct objfile *objfile, asymbol *sym); 986 typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, str uct objfile *objfile, asymbol *sym);
954 extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfi le *objfile, asymbol *sym); 987 extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfi le *objfile, asymbol *sym);
955 extern void set_gdbarch_record_special_symbol (struct gdbarch *gdbarch, gdbarch_ record_special_symbol_ftype *record_special_symbol); 988 extern void set_gdbarch_record_special_symbol (struct gdbarch *gdbarch, gdbarch_ record_special_symbol_ftype *record_special_symbol);
956 989
957 /* Function for the 'catch syscall' feature. 990 /* Function for the 'catch syscall' feature.
958 Get architecture-specific system calls information from registers. */ 991 Get architecture-specific system calls information from registers. */
959 992
960 extern int gdbarch_get_syscall_number_p (struct gdbarch *gdbarch); 993 extern int gdbarch_get_syscall_number_p (struct gdbarch *gdbarch);
961 994
962 typedef LONGEST (gdbarch_get_syscall_number_ftype) (struct gdbarch *gdbarch, pti d_t ptid); 995 typedef LONGEST (gdbarch_get_syscall_number_ftype) (struct gdbarch *gdbarch, pti d_t ptid);
963 extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid) ; 996 extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid) ;
964 extern void set_gdbarch_get_syscall_number (struct gdbarch *gdbarch, gdbarch_get _syscall_number_ftype *get_syscall_number); 997 extern void set_gdbarch_get_syscall_number (struct gdbarch *gdbarch, gdbarch_get _syscall_number_ftype *get_syscall_number);
965 998
999 /* SystemTap related fields and functions.
1000 Prefix used to mark an integer constant on the architecture's assembly
1001 For example, on x86 integer constants are written as:
1002
1003 $10 ;; integer constant 10
1004
1005 in this case, this prefix would be the character `$'. */
1006
1007 extern const char * gdbarch_stap_integer_prefix (struct gdbarch *gdbarch);
1008 extern void set_gdbarch_stap_integer_prefix (struct gdbarch *gdbarch, const char * stap_integer_prefix);
1009
1010 /* Suffix used to mark an integer constant on the architecture's assembly. */
1011
1012 extern const char * gdbarch_stap_integer_suffix (struct gdbarch *gdbarch);
1013 extern void set_gdbarch_stap_integer_suffix (struct gdbarch *gdbarch, const char * stap_integer_suffix);
1014
1015 /* Prefix used to mark a register name on the architecture's assembly.
1016 For example, on x86 the register name is written as:
1017
1018 %eax ;; register eax
1019
1020 in this case, this prefix would be the character `%'. */
1021
1022 extern const char * gdbarch_stap_register_prefix (struct gdbarch *gdbarch);
1023 extern void set_gdbarch_stap_register_prefix (struct gdbarch *gdbarch, const cha r * stap_register_prefix);
1024
1025 /* Suffix used to mark a register name on the architecture's assembly */
1026
1027 extern const char * gdbarch_stap_register_suffix (struct gdbarch *gdbarch);
1028 extern void set_gdbarch_stap_register_suffix (struct gdbarch *gdbarch, const cha r * stap_register_suffix);
1029
1030 /* Prefix used to mark a register indirection on the architecture's assembly.
1031 For example, on x86 the register indirection is written as:
1032
1033 (%eax) ;; indirecting eax
1034
1035 in this case, this prefix would be the charater `('.
1036
1037 Please note that we use the indirection prefix also for register
1038 displacement, e.g., `4(%eax)' on x86. */
1039
1040 extern const char * gdbarch_stap_register_indirection_prefix (struct gdbarch *gd barch);
1041 extern void set_gdbarch_stap_register_indirection_prefix (struct gdbarch *gdbarc h, const char * stap_register_indirection_prefix);
1042
1043 /* Suffix used to mark a register indirection on the architecture's assembly.
1044 For example, on x86 the register indirection is written as:
1045
1046 (%eax) ;; indirecting eax
1047
1048 in this case, this prefix would be the charater `)'.
1049
1050 Please note that we use the indirection suffix also for register
1051 displacement, e.g., `4(%eax)' on x86. */
1052
1053 extern const char * gdbarch_stap_register_indirection_suffix (struct gdbarch *gd barch);
1054 extern void set_gdbarch_stap_register_indirection_suffix (struct gdbarch *gdbarc h, const char * stap_register_indirection_suffix);
1055
1056 /* Prefix used to name a register using GDB's nomenclature.
1057
1058 For example, on PPC a register is represented by a number in the assembly
1059 language (e.g., `10' is the 10th general-purpose register). However,
1060 inside GDB this same register has an `r' appended to its name, so the 10th
1061 register would be represented as `r10' internally. */
1062
1063 extern const char * gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch);
1064 extern void set_gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch, const char * stap_gdb_register_prefix);
1065
1066 /* Suffix used to name a register using GDB's nomenclature. */
1067
1068 extern const char * gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch);
1069 extern void set_gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch, const char * stap_gdb_register_suffix);
1070
1071 /* Check if S is a single operand.
1072
1073 Single operands can be:
1074 - Literal integers, e.g. `$10' on x86
1075 - Register access, e.g. `%eax' on x86
1076 - Register indirection, e.g. `(%eax)' on x86
1077 - Register displacement, e.g. `4(%eax)' on x86
1078
1079 This function should check for these patterns on the string
1080 and return 1 if some were found, or zero otherwise. Please try to match
1081 as much info as you can from the string, i.e., if you have to match
1082 something like `(%', do not match just the `('. */
1083
1084 extern int gdbarch_stap_is_single_operand_p (struct gdbarch *gdbarch);
1085
1086 typedef int (gdbarch_stap_is_single_operand_ftype) (struct gdbarch *gdbarch, con st char *s);
1087 extern int gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, const char * s);
1088 extern void set_gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, gdbarch _stap_is_single_operand_ftype *stap_is_single_operand);
1089
1090 /* Function used to handle a "special case" in the parser.
1091
1092 A "special case" is considered to be an unknown token, i.e., a token
1093 that the parser does not know how to parse. A good example of special
1094 case would be ARM's register displacement syntax:
1095
1096 [R0, #4] ;; displacing R0 by 4
1097
1098 Since the parser assumes that a register displacement is of the form:
1099
1100 <number> <indirection_prefix> <register_name> <indirection_suffix>
1101
1102 it means that it will not be able to recognize and parse this odd syntax.
1103 Therefore, we should add a special case function that will handle this token.
1104
1105 This function should generate the proper expression form of the expression
1106 using GDB's internal expression mechanism (e.g., `write_exp_elt_opcode'
1107 and so on). It should also return 1 if the parsing was successful, or zero
1108 if the token was not recognized as a special token (in this case, returning
1109 zero means that the special parser is deferring the parsing to the generic
1110 parser), and should advance the buffer pointer (p->arg). */
1111
1112 extern int gdbarch_stap_parse_special_token_p (struct gdbarch *gdbarch);
1113
1114 typedef int (gdbarch_stap_parse_special_token_ftype) (struct gdbarch *gdbarch, s truct stap_parse_info *p);
1115 extern int gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, struct sta p_parse_info *p);
1116 extern void set_gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, gdbar ch_stap_parse_special_token_ftype *stap_parse_special_token);
1117
966 /* True if the list of shared libraries is one and only for all 1118 /* True if the list of shared libraries is one and only for all
967 processes, as opposed to a list of shared libraries per inferior. 1119 processes, as opposed to a list of shared libraries per inferior.
968 This usually means that all processes, although may or may not share 1120 This usually means that all processes, although may or may not share
969 an address space, will see the same set of symbols at the same 1121 an address space, will see the same set of symbols at the same
970 addresses. */ 1122 addresses. */
971 1123
972 extern int gdbarch_has_global_solist (struct gdbarch *gdbarch); 1124 extern int gdbarch_has_global_solist (struct gdbarch *gdbarch);
973 extern void set_gdbarch_has_global_solist (struct gdbarch *gdbarch, int has_glob al_solist); 1125 extern void set_gdbarch_has_global_solist (struct gdbarch *gdbarch, int has_glob al_solist);
974 1126
975 /* On some targets, even though each inferior has its own private 1127 /* On some targets, even though each inferior has its own private
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1024 /* Generate bytecodes to collect the return address in a frame. 1176 /* Generate bytecodes to collect the return address in a frame.
1025 Since the bytecodes run on the target, possibly with GDB not even 1177 Since the bytecodes run on the target, possibly with GDB not even
1026 connected, the full unwinding machinery is not available, and 1178 connected, the full unwinding machinery is not available, and
1027 typically this function will issue bytecodes for one or more likely 1179 typically this function will issue bytecodes for one or more likely
1028 places that the return address may be found. */ 1180 places that the return address may be found. */
1029 1181
1030 typedef void (gdbarch_gen_return_address_ftype) (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope); 1182 typedef void (gdbarch_gen_return_address_ftype) (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope);
1031 extern void gdbarch_gen_return_address (struct gdbarch *gdbarch, struct agent_ex pr *ax, struct axs_value *value, CORE_ADDR scope); 1183 extern void gdbarch_gen_return_address (struct gdbarch *gdbarch, struct agent_ex pr *ax, struct axs_value *value, CORE_ADDR scope);
1032 extern void set_gdbarch_gen_return_address (struct gdbarch *gdbarch, gdbarch_gen _return_address_ftype *gen_return_address); 1184 extern void set_gdbarch_gen_return_address (struct gdbarch *gdbarch, gdbarch_gen _return_address_ftype *gen_return_address);
1033 1185
1186 /* Implement the "info proc" command. */
1187
1188 extern int gdbarch_info_proc_p (struct gdbarch *gdbarch);
1189
1190 typedef void (gdbarch_info_proc_ftype) (struct gdbarch *gdbarch, char *args, enu m info_proc_what what);
1191 extern void gdbarch_info_proc (struct gdbarch *gdbarch, char *args, enum info_pr oc_what what);
1192 extern void set_gdbarch_info_proc (struct gdbarch *gdbarch, gdbarch_info_proc_ft ype *info_proc);
1193
1194 /* Iterate over all objfiles in the order that makes the most sense
1195 for the architecture to make global symbol searches.
1196
1197 CB is a callback function where OBJFILE is the objfile to be searched,
1198 and CB_DATA a pointer to user-defined data (the same data that is passed
1199 when calling this gdbarch method). The iteration stops if this function
1200 returns nonzero.
1201
1202 CB_DATA is a pointer to some user-defined data to be passed to
1203 the callback.
1204
1205 If not NULL, CURRENT_OBJFILE corresponds to the objfile being
1206 inspected when the symbol search was requested. */
1207
1208 typedef void (gdbarch_iterate_over_objfiles_in_search_order_ftype) (struct gdbar ch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile);
1209 extern void gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbar ch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct ob jfile *current_objfile);
1210 extern void set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *g dbarch, gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfil es_in_search_order);
1211
1034 /* Definition for an unknown syscall, used basically in error-cases. */ 1212 /* Definition for an unknown syscall, used basically in error-cases. */
1035 #define UNKNOWN_SYSCALL (-1) 1213 #define UNKNOWN_SYSCALL (-1)
1036 1214
1037 extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch); 1215 extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);
1038 1216
1039 1217
1040 /* Mechanism for co-ordinating the selection of a specific 1218 /* Mechanism for co-ordinating the selection of a specific
1041 architecture. 1219 architecture.
1042 1220
1043 GDB targets (*-tdep.c) can register an interest in a specific 1221 GDB targets (*-tdep.c) can register an interest in a specific
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 our list. */ 1424 our list. */
1247 1425
1248 extern void initialize_current_architecture (void); 1426 extern void initialize_current_architecture (void);
1249 1427
1250 /* gdbarch trace variable */ 1428 /* gdbarch trace variable */
1251 extern int gdbarch_debug; 1429 extern int gdbarch_debug;
1252 1430
1253 extern void gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file); 1431 extern void gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file);
1254 1432
1255 #endif 1433 #endif
OLDNEW
« no previous file with comments | « gdb/gdb_vecs.h ('k') | gdb/gdbarch.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698