X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fnto-tdep.c;h=d9c95a700dc3df9f56d2eb14f5ef1b63211e1d95;hb=37cc8bfee6166ea05f1fa2e7d9f0f4d90663b7fc;hp=38fb03d35d03133c92befd2193a1452736d00869;hpb=1cf3db46a678ced9d729572de9232fab9c00350d;p=binutils-gdb.git diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c index 38fb03d35d0..d9c95a700dc 100644 --- a/gdb/nto-tdep.c +++ b/gdb/nto-tdep.c @@ -1,6 +1,7 @@ /* nto-tdep.c - general QNX Neutrino target functionality. - Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. Contributed by QNX Software Systems Ltd. @@ -67,19 +68,6 @@ nto_target (void) #endif } -void -nto_set_target (struct nto_target_ops *targ) -{ - nto_regset_id = targ->regset_id; - nto_supply_gregset = targ->supply_gregset; - nto_supply_fpregset = targ->supply_fpregset; - nto_supply_altregset = targ->supply_altregset; - nto_supply_regset = targ->supply_regset; - nto_register_area = targ->register_area; - nto_regset_fill = targ->regset_fill; - nto_fetch_link_map_offsets = targ->fetch_link_map_offsets; -} - /* Take a string such as i386, rs6000, etc. and map it onto CPUTYPE_X86, CPUTYPE_PPC, etc. as defined in nto-share/dsmsgs.h. */ int @@ -145,7 +133,7 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname) else base++; /* Skip over '/'. */ - ret = openp (buf, 1, base, o_flags, 0, temp_pathname); + ret = openp (buf, 1, base, o_flags, temp_pathname); if (ret < 0 && base != solib) { sprintf (arch_path, "/%s", solib); @@ -280,10 +268,10 @@ LM_ADDR (struct so_list *so) if (so->lm_info->l_addr == (CORE_ADDR)-1) { struct link_map_offsets *lmo = nto_fetch_link_map_offsets (); + struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr; so->lm_info->l_addr = - extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, - builtin_type_void_data_ptr); + extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, ptr_type); } return so->lm_info->l_addr; } @@ -299,7 +287,7 @@ nto_truncate_ptr (CORE_ADDR addr) return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (target_gdbarch)) - 1); } -Elf_Internal_Phdr * +static Elf_Internal_Phdr * find_load_phdr (bfd *abfd) { Elf_Internal_Phdr *phdr; @@ -318,7 +306,7 @@ find_load_phdr (bfd *abfd) } void -nto_relocate_section_addresses (struct so_list *so, struct section_table *sec) +nto_relocate_section_addresses (struct so_list *so, struct target_section *sec) { /* Neutrino treats the l_addr base address field in link.h as different than the base address in the System V ABI and so the offset needs to be @@ -340,27 +328,6 @@ nto_in_dynsym_resolve_code (CORE_ADDR pc) return 0; } -void -nto_generic_supply_gpregset (const struct regset *regset, - struct regcache *regcache, int regnum, - const void *gregs, size_t len) -{ -} - -void -nto_generic_supply_fpregset (const struct regset *regset, - struct regcache *regcache, int regnum, - const void *fpregs, size_t len) -{ -} - -void -nto_generic_supply_altregset (const struct regset *regset, - struct regcache *regcache, int regnum, - const void *altregs, size_t len) -{ -} - void nto_dummy_supply_regset (struct regcache *regcache, char *regs) { @@ -375,6 +342,40 @@ nto_elf_osabi_sniffer (bfd *abfd) return GDB_OSABI_UNKNOWN; } +static const char *nto_thread_state_str[] = +{ + "DEAD", /* 0 0x00 */ + "RUNNING", /* 1 0x01 */ + "READY", /* 2 0x02 */ + "STOPPED", /* 3 0x03 */ + "SEND", /* 4 0x04 */ + "RECEIVE", /* 5 0x05 */ + "REPLY", /* 6 0x06 */ + "STACK", /* 7 0x07 */ + "WAITTHREAD", /* 8 0x08 */ + "WAITPAGE", /* 9 0x09 */ + "SIGSUSPEND", /* 10 0x0a */ + "SIGWAITINFO", /* 11 0x0b */ + "NANOSLEEP", /* 12 0x0c */ + "MUTEX", /* 13 0x0d */ + "CONDVAR", /* 14 0x0e */ + "JOIN", /* 15 0x0f */ + "INTR", /* 16 0x10 */ + "SEM", /* 17 0x11 */ + "WAITCTX", /* 18 0x12 */ + "NET_SEND", /* 19 0x13 */ + "NET_REPLY" /* 20 0x14 */ +}; + +char * +nto_extra_thread_info (struct thread_info *ti) +{ + if (ti && ti->private + && ti->private->state < ARRAY_SIZE (nto_thread_state_str)) + return (char *)nto_thread_state_str [ti->private->state]; + return ""; +} + void nto_initialize_signals (void) { @@ -398,6 +399,9 @@ nto_initialize_signals (void) #endif } +/* Provide a prototype to silence -Wmissing-prototypes. */ +extern initialize_file_ftype _initialize_nto_tdep; + void _initialize_nto_tdep (void) {