Applied, thanks! Flavio Cruz, le mar. 10 janv. 2023 01:00:37 -0500, a ecrit: > 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. > --- > 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 <vm/vm_kern.h> > #include <vm/vm_user.h> > #include <kern/host.h> > +#include <kern/mach_debug.h> > #include <kern/task.h> > #include <ddb/db_sym.h> > > 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 <ipc/mach_port.h> > > > - > /* > * 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 <ipc/ipc_types.h> > #include <ipc/ipc_entry.h> > > +#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 <mach/mach_types.h> /* task_t, pointer_t */ > +#include <kern/task.h> > + > +/* 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 */ > -- > 2.39.0 > >
-- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria.