From 0a784d2742791209e8042a9c7c35f58f3cdcb36d Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Tue, 20 Apr 2010 22:35:03 +0000 Subject: procfs.c: Move solib_mappings_callback up to avoid compiler warning. There are currently 2 issues with the placement of this routine: - It's defined after it is being used (causing an implicit declaration); - It looks like it's being defined all the time, whereas it is used only on mips-irix (AFAICT) - shouldn't have this triggered a warning on sparc-solaris, for instance??? In any case, this patch moves this function up, inside the right region, just before the function where it is actually used. gdb/ChangeLog: * procfs.c (solib_mappings_callback): Move function up to avoid a compiler warning. --- gdb/procfs.c | 98 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 47 insertions(+), 51 deletions(-) (limited to 'gdb/procfs.c') diff --git a/gdb/procfs.c b/gdb/procfs.c index 0ee72dc3944..a04b604a64d 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -4043,6 +4043,53 @@ insert_dbx_link_bpt_in_file (int fd, CORE_ADDR ignored) return 0; } +/* Calls the supplied callback function once for each mapped address + space in the process. The callback function receives an open + file descriptor for the file corresponding to that mapped + address space (if there is one), and the base address of the + mapped space. Quit when the callback function returns a + nonzero value, or at teh end of the mappings. + + Returns: the first non-zero return value of the callback function, + or zero. */ + +static int +solib_mappings_callback (struct prmap *map, int (*func) (int, CORE_ADDR), + void *data) +{ + procinfo *pi = data; + int fd; + +#ifdef NEW_PROC_API + char name[MAX_PROC_NAME_SIZE + sizeof (map->pr_mapname)]; + + if (map->pr_vaddr == 0 && map->pr_size == 0) + return -1; /* sanity */ + + if (map->pr_mapname[0] == 0) + { + fd = -1; /* no map file */ + } + else + { + sprintf (name, "/proc/%d/object/%s", pi->pid, map->pr_mapname); + /* Note: caller's responsibility to close this fd! */ + fd = open_with_retry (name, O_RDONLY); + /* Note: we don't test the above call for failure; + we just pass the FD on as given. Sometimes there is + no file, so the open may return failure, but that's + not a problem. */ + } +#else + fd = ioctl (pi->ctl_fd, PIOCOPENM, &map->pr_vaddr); + /* Note: we don't test the above call for failure; + we just pass the FD on as given. Sometimes there is + no file, so the ioctl may return failure, but that's + not a problem. */ +#endif + return (*func) (fd, (CORE_ADDR) map->pr_vaddr); +} + /* If the given memory region MAP contains a symbol named __dbx_link, insert a breakpoint at this location and return nonzero. Return zero otherwise. */ @@ -5623,57 +5670,6 @@ iterate_over_mappings (procinfo *pi, int (*child_func) (), void *data, return 0; } -/* - * Function: solib_mappings_callback - * - * Calls the supplied callback function once for each mapped address - * space in the process. The callback function receives an open - * file descriptor for the file corresponding to that mapped - * address space (if there is one), and the base address of the - * mapped space. Quit when the callback function returns a - * nonzero value, or at teh end of the mappings. - * - * Returns: the first non-zero return value of the callback function, - * or zero. - */ - -int solib_mappings_callback (struct prmap *map, - int (*func) (int, CORE_ADDR), - void *data) -{ - procinfo *pi = data; - int fd; - -#ifdef NEW_PROC_API - char name[MAX_PROC_NAME_SIZE + sizeof (map->pr_mapname)]; - - if (map->pr_vaddr == 0 && map->pr_size == 0) - return -1; /* sanity */ - - if (map->pr_mapname[0] == 0) - { - fd = -1; /* no map file */ - } - else - { - sprintf (name, "/proc/%d/object/%s", pi->pid, map->pr_mapname); - /* Note: caller's responsibility to close this fd! */ - fd = open_with_retry (name, O_RDONLY); - /* Note: we don't test the above call for failure; - we just pass the FD on as given. Sometimes there is - no file, so the open may return failure, but that's - not a problem. */ - } -#else - fd = ioctl (pi->ctl_fd, PIOCOPENM, &map->pr_vaddr); - /* Note: we don't test the above call for failure; - we just pass the FD on as given. Sometimes there is - no file, so the ioctl may return failure, but that's - not a problem. */ -#endif - return (*func) (fd, (CORE_ADDR) map->pr_vaddr); -} - /* * Function: find_memory_regions_callback * -- cgit v1.2.1