From 963b1794d7117064cee8ab5638b329db51dad854 Mon Sep 17 00:00:00 2001 From: Flavio Cruz Date: Tue, 10 Jan 2023 01:00:37 -0500 Subject: Preemptively fix warnings that will be caused by -Wmissing-prototypes Declared RPCs in ipc/mach_port.c and ddb/db_ext_symtab.c in their corresponding headers. Ideally these should be used by mig instead of mig declaring its own prototypes. Message-Id: --- Makefrag.am | 1 + ddb/db_ext_symtab.c | 1 + ipc/mach_port.c | 1 - ipc/mach_port.h | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++-- kern/mach_debug.h | 40 ++++++++++++++++++++ 5 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 kern/mach_debug.h diff --git a/Makefrag.am b/Makefrag.am index e2b4a3ba..8a82caee 100644 --- a/Makefrag.am +++ b/Makefrag.am @@ -170,6 +170,7 @@ libkernel_a_SOURCES += \ kern/log2.h \ kern/mach_clock.c \ kern/mach_clock.h \ + kern/mach_debug.h \ kern/mach_factor.c \ kern/mach_factor.h \ kern/machine.c \ diff --git a/ddb/db_ext_symtab.c b/ddb/db_ext_symtab.c index e1bdfd8b..9c89fb95 100644 --- a/ddb/db_ext_symtab.c +++ b/ddb/db_ext_symtab.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include diff --git a/ipc/mach_port.c b/ipc/mach_port.c index e5a5e978..1c9cdc97 100644 --- a/ipc/mach_port.c +++ b/ipc/mach_port.c @@ -62,7 +62,6 @@ #include - /* * Routine: mach_port_names_helper * Purpose: diff --git a/ipc/mach_port.h b/ipc/mach_port.h index 83641ae6..c93c48df 100644 --- a/ipc/mach_port.h +++ b/ipc/mach_port.h @@ -30,6 +30,12 @@ #include #include +#if MACH_KDB +void db_debug_port_references (boolean_t enable); +#endif /* MACH_KDB */ + +/* RPCs */ + extern kern_return_t mach_port_allocate_name ( ipc_space_t space, @@ -65,8 +71,99 @@ mach_port_get_receive_status( mach_port_name_t name, mach_port_status_t *statusp); -#if MACH_KDB -void db_debug_port_references (boolean_t enable); -#endif /* MACH_KDB */ +kern_return_t +mach_port_names( + ipc_space_t space, + mach_port_name_t **namesp, + mach_msg_type_number_t *namesCnt, + mach_port_type_t **typesp, + mach_msg_type_number_t *typesCnt); + +kern_return_t +mach_port_type( + ipc_space_t space, + mach_port_name_t name, + mach_port_type_t *typep); + +kern_return_t +mach_port_rename( + ipc_space_t space, + mach_port_name_t oname, + mach_port_name_t nname); + +kern_return_t +mach_port_get_refs( + ipc_space_t space, + mach_port_name_t name, + mach_port_right_t right, + mach_port_urefs_t *urefsp); + +kern_return_t +mach_port_mod_refs( + ipc_space_t space, + mach_port_name_t name, + mach_port_right_t right, + mach_port_delta_t delta); + +kern_return_t +mach_port_set_qlimit( + ipc_space_t space, + mach_port_name_t name, + mach_port_msgcount_t qlimit); + +kern_return_t +mach_port_set_mscount( + ipc_space_t space, + mach_port_name_t name, + mach_port_mscount_t mscount); + +kern_return_t +mach_port_set_seqno( + ipc_space_t space, + mach_port_name_t name, + mach_port_seqno_t seqno); + +kern_return_t +mach_port_get_set_status( + ipc_space_t space, + mach_port_name_t name, + mach_port_name_t **members, + mach_msg_type_number_t *membersCnt); + +kern_return_t +mach_port_move_member( + ipc_space_t space, + mach_port_name_t member, + mach_port_name_t after); + +kern_return_t +mach_port_request_notification( + ipc_space_t space, + mach_port_name_t name, + mach_msg_id_t id, + mach_port_mscount_t sync, + ipc_port_t notify, + ipc_port_t *previousp); + +kern_return_t +mach_port_extract_right( + ipc_space_t space, + mach_port_name_t name, + mach_msg_type_name_t msgt_name, + ipc_port_t *poly, + mach_msg_type_name_t *polyPoly); + +kern_return_t +mach_port_set_protected_payload( + ipc_space_t space, + mach_port_name_t name, + unsigned long payload); + +kern_return_t +mach_port_clear_protected_payload( + ipc_space_t space, + mach_port_name_t name); + +/* End of RPCs */ #endif /* _IPC_MACH_PORT_H_ */ diff --git a/kern/mach_debug.h b/kern/mach_debug.h new file mode 100644 index 00000000..63b8ae96 --- /dev/null +++ b/kern/mach_debug.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 Free Software Foundation, Inc. + * + * This file is part of GNU Mach. + * + * GNU Mach is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _KERN_MACH_DEBUG_H +#define _KERN_MACH_DEBUG_H + +#include /* task_t, pointer_t */ +#include + +/* RPCs */ + +#if defined(MACH_KDB) && defined(MACH_DEBUG) +kern_return_t host_load_symbol_table( + host_t host, + task_t task, + char *name, + pointer_t symtab, + unsigned int symbtab_count); +#endif /* defined(MACH_KDB) && defined(MACH_DEBUG) */ + +/* End of RPCs */ + +#endif /* _KERN_MACH_DEBUG_H */ -- cgit v1.2.3