Revised: [patch] general updates and improvements to QNX NTO support
Kris Warkentin
kewarken@qnx.com
Mon Dec 6 16:53:00 GMT 2004
Based on Mark's comments, I've refactored this patch to provide a
cleaner interface to nto_tdep.c. I created an nto_set_target function
so that the targets can initialize their own nto_target_ops and set the
target properly rather than initializing current_nto_target.
I thought about completely hiding the implementation by turning all the
macros into functions which just call the current target functions but
I'm not sure if it's worth it. Specifically I'm thinking about cases
where other modules need access to members of current_nto_target. For
instance, the remote and procfs modules need to set various flags and
hooks so if I were to hide current_nto_target, I'd need setter/getter
functions. Certainly that is the cleaner 'OO' approach. If it needs
changing later, I might also store a list of targets in nto-tdep.c. It
doesn't seem like a high priority right now though since we probably
won't be multi-arching our gdb any time soon.
cheers,
Kris
2004-12-06 Kris Warkentin <kewarken@qnx.com>
* nto-tdep.h: Include osabi.h. Prototypes for generic Neutrino
osabi sniffer, signal handling initializer, 'in_dynsym_resolve_code'
function and nto_set_target function.
(struct nto_target_ops): Put comments inline with struct. Add osabi
sniffer hook. Redefine macros to permit testing/assignment. Remove
nto_ prefix from members.
* nto-tdep.c (nto_find_and_open_solib): Allocate all buffers
dynamically to support arbitrary root paths. Check for basename of
lib in search path and then check for absolute.
(nto_in_dynsym_resolve_code): New function.
(nto_core_sniffer): New function.
(regset_core_fns): Register core sniffer.
(nto_initialize_signals): New function.
(_initialize_nto_tdep): Move signal initialization code to above to
avoid initialization race conditions.
(nto_set_target): New function.
* nto-procfs.c: Minor formatting/indenting changes.
(procfs_is_nto_target): New function.
(procfs_open): Set nto_is_nto_target.
(_initialize_procfs): Ditto. Remove notice_signals() call to avoid
initialization race conditions.
(procfs_create_inferior): Resume inferior after creation.
* i386-nto-tdep.c: Declare i386_nto_target.
(init_i386nto_ops): Initialize i386_nto_target instead of
current_nto_target.
(i386nto_init_abi): Initialize signals. Call nto_set_target. Set
TARGET_SO_IN_DYNSYM_RESOLVE_CODE.
(_initialize_i386nto_tdep): Call init_i386nto_ops. Register osabi
sniffer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: new.diff
Type: text/x-patch
Size: 19394 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20041206/1d0f13e1/attachment.bin>
More information about the Gdb-patches
mailing list