198944Sobrien/* Kernel Object Display facility for Cisco
298944Sobrien   Copyright 1999 Free Software Foundation, Inc.
398944Sobrien
498944SobrienThis file is part of GDB.
598944Sobrien
698944SobrienThis program is free software; you can redistribute it and/or modify
798944Sobrienit under the terms of the GNU General Public License as published by
898944Sobrienthe Free Software Foundation; either version 2 of the License, or
998944Sobrien(at your option) any later version.
1098944Sobrien
1198944SobrienThis program is distributed in the hope that it will be useful,
1298944Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of
1398944SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1498944SobrienGNU General Public License for more details.
1598944Sobrien
1698944SobrienYou should have received a copy of the GNU General Public License
1798944Sobrienalong with this program; if not, write to the Free Software
1898944SobrienFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
1998944Sobrien
2098944Sobrien#ifndef KOD_H
2198944Sobrien#define KOD_H
2298944Sobrien
2398944Sobrientypedef void kod_display_callback_ftype (char *);
2498944Sobrientypedef void kod_query_callback_ftype (char *, char *, int *);
2598944Sobrien
2698944Sobrien/* ???/???: Functions imported from the library for all supported
2798944Sobrien   OSes.  FIXME: we really should do something better, such as
2898944Sobrien   dynamically loading the KOD modules.  */
2998944Sobrien
3098944Sobrien/* FIXME: cagney/1999-09-20: The kod-cisco.c et.al. kernel modules
3198944Sobrien   should register themselve with kod.c during the _initialization*()
3298944Sobrien   phase.  With that implemented the extern declarations below would
3398944Sobrien   be replaced with the KOD register function that the various kernel
3498944Sobrien   modules should call.  An example of this mechanism can be seen in
3598944Sobrien   gdbarch.c:register_gdbarch_init(). */
3698944Sobrien
3798944Sobrien#if 0
3898944Sobrien/* Don't have ecos code yet. */
3998944Sobrienextern char *ecos_kod_open (kod_display_callback_ftype *display_func,
4098944Sobrien			    kod_query_callback_ftype *query_func);
4198944Sobrienextern void ecos_kod_request (char *, int);
4298944Sobrienextern void ecos_kod_close (void);
4398944Sobrien#endif
4498944Sobrien
4598944Sobrien/* Initialize and return library name and version.  The gdb side of
4698944Sobrien   KOD, kod.c, passes us two functions: one for displaying output
4798944Sobrien   (presumably to the user) and the other for querying the target.  */
4898944Sobrien
4998944Sobrienextern char *cisco_kod_open (kod_display_callback_ftype *display_func,
5098944Sobrien			     kod_query_callback_ftype *query_func);
5198944Sobrien
5298944Sobrien/* Print information about currently known kernel objects.  We
5398944Sobrien   currently ignore the argument.  There is only one mode of querying
5498944Sobrien   the Cisco kernel: we ask for a dump of everything, and it returns
5598944Sobrien   it.  */
5698944Sobrien
5798944Sobrienextern void cisco_kod_request (char *arg, int from_tty);
5898944Sobrien
5998944Sobrienextern void cisco_kod_close (void);
6098944Sobrien
6198944Sobrien#endif
62