#ifdef AIX_PROD
/* @(#)68	1.1.1.2  src/dce/utils/svc/svcfilter.h, dce.utils.svc.src, os2dce21.dss, 960602a.1 7/26/95 15:57:50  */
/*
 *   COMPONENT_NAME: dce.utils.svc.src
 *
 *   FUNCTIONS: defined
 *
 *   ORIGINS: 72
 *
 */
#endif /* AIX_PROD */
/*
 * @OSF_COPYRIGHT@
 * COPYRIGHT NOTICE
 * Copyright (c) 1990, 1991, 1992, 1993, 1994 Open Software Foundation, Inc.
 * ALL RIGHTS RESERVED (DCE).  See the file named COPYRIGHT.DCE for
 * the full copyright text.
 * Serviceability filtering header file.  Requires <stdarg.h>
 */

/*
 * HISTORY
 * $Log: svcfilter.h,v $
 * Revision 1.1.4.1  1994/06/09  16:06:27  devsrc
 * 	cr10892 - fix copyright
 * 	[1994/06/09  15:50:57  devsrc]
 *
 * Revision 1.1.2.2  1993/08/16  18:09:53  rsalz
 * 	Initial release
 * 	[1993/08/16  18:04:36  rsalz]
 * 
 * $EndLog$
 */

#if	!defined(_DCE_SVCFILTER_H)
#define _DCE_SVCFILTER_H


typedef struct dce_svc_prolog_s_t {
    dce_svc_handle_t		handle;
    int				version;
    utc_t			t;
    const char			*argtypes;
    unsigned32			table_index;
    unsigned32			attributes;
    unsigned32			message_index;
    char			*format;
    const char			*file;
    char			progname[dce_svc_c_progname_buffsize];
    int				line;
    pthread_t			thread_id;
} *dce_svc_prolog_t;


typedef boolean (*dce_svc_filter_proc_t)(
    const dce_svc_prolog_t	/* prolog */,
    va_list			/* args */
);


typedef void (*dce_svc_filterctl_proc_t)(
    int				/* arg_size */,
    unsigned char*		/* arg */,
    error_status_t*		status
);


/*
**  Attach a filter and a filter-control to a component.
*/
#ifdef IBMOS2 /* CMVC 14384 */
#ifndef DCEAPI
#include <dce/dcedef.h>
#endif
extern void DCEAPI dce_svc_define_filter(
#else
extern void dce_svc_define_filter(
#endif /* CMVC 14384 */
    dce_svc_handle_t		/* handle */,
    dce_svc_filter_proc_t	/* filter_function */,
    dce_svc_filterctl_proc_t	/* filter_ctl_function */,
    error_status_t*		/* status */
);

#endif	/* !defined(_DCE_SVCFILTER_H) */
