Annotation of XNU/osfmk/ipc/mig_log.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * The contents of this file constitute Original Code as defined in and
        !             7:  * are subject to the Apple Public Source License Version 1.1 (the
        !             8:  * "License").  You may not use this file except in compliance with the
        !             9:  * License.  Please obtain a copy of the License at
        !            10:  * http://www.apple.com/publicsource and read it before using this file.
        !            11:  * 
        !            12:  * This Original Code and all software distributed under the License are
        !            13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            17:  * License for the specific language governing rights and limitations
        !            18:  * under the License.
        !            19:  * 
        !            20:  * @APPLE_LICENSE_HEADER_END@
        !            21:  */
        !            22: /*
        !            23:  * @OSF_COPYRIGHT@
        !            24:  */
        !            25: /*
        !            26:  * HISTORY
        !            27:  * 
        !            28:  * Revision 1.1.1.1  1998/09/22 21:05:29  wsanchez
        !            29:  * Import of Mac OS X kernel (~semeria)
        !            30:  *
        !            31:  * Revision 1.1.1.1  1998/03/07 02:26:16  wsanchez
        !            32:  * Import of OSF Mach kernel (~mburg)
        !            33:  *
        !            34:  * Revision 1.2.6.1  1994/09/23  02:14:23  ezf
        !            35:  *     change marker to not FREE
        !            36:  *     [1994/09/22  21:31:33  ezf]
        !            37:  *
        !            38:  * Revision 1.2.2.4  1993/08/03  18:29:18  gm
        !            39:  *     CR9596: Change KERNEL to MACH_KERNEL.
        !            40:  *     [1993/08/02  16:11:07  gm]
        !            41:  * 
        !            42:  * Revision 1.2.2.3  1993/07/22  16:18:15  rod
        !            43:  *     Add ANSI prototypes.  CR #9523.
        !            44:  *     [1993/07/22  13:34:22  rod]
        !            45:  * 
        !            46:  * Revision 1.2.2.2  1993/06/09  02:33:38  gm
        !            47:  *     Added to OSF/1 R1.3 from NMK15.0.
        !            48:  *     [1993/06/02  21:11:41  jeffc]
        !            49:  * 
        !            50:  * Revision 1.2  1993/04/19  16:23:26  devrcs
        !            51:  *     Untyped ipc merge:
        !            52:  *     Support for logging and tracing within the MIG stubs
        !            53:  *     [1993/02/24  14:49:29  travos]
        !            54:  * 
        !            55:  * $EndLog$
        !            56:  */
        !            57: 
        !            58: #ifdef MACH_KERNEL
        !            59: #include <mig_debug.h>
        !            60: #endif
        !            61: 
        !            62: #include <mach/message.h>
        !            63: #include <mach/mig_log.h>
        !            64: 
        !            65: int mig_tracing, mig_errors, mig_full_tracing;
        !            66: 
        !            67: /*
        !            68:  * Tracing facilities for MIG generated stubs.
        !            69:  *
        !            70:  * At the moment, there is only a printf, which is
        !            71:  * activated through the runtime switch:
        !            72:  *     mig_tracing to call MigEventTracer
        !            73:  *     mig_errors to call MigEventErrors
        !            74:  * For this to work, MIG has to run with the -L option, 
        !            75:  * and the mig_debug flags has to be selected
        !            76:  *
        !            77:  * In the future, it will be possible to collect infos
        !            78:  * on the use of MACH IPC with an application similar
        !            79:  * to netstat.
        !            80:  * 
        !            81:  * A new option will be generated accordingly to the
        !            82:  * kernel configuration rules, e.g
        !            83:  *     #include <mig_log.h>
        !            84:  */ 
        !            85: 
        !            86: void
        !            87: MigEventTracer(
        !            88:        mig_who_t               who,
        !            89:        mig_which_event_t       what,
        !            90:        mach_msg_id_t           msgh_id,
        !            91:        unsigned int            size,
        !            92:        unsigned int            kpd,
        !            93:        unsigned int            retcode,
        !            94:        unsigned int            ports,
        !            95:        unsigned int            oolports,
        !            96:        unsigned int            ool,
        !            97:        char                    *file,
        !            98:        unsigned int            line)
        !            99: {
        !           100:     printf("%d|%d|%d", who, what, msgh_id); 
        !           101:     if (mig_full_tracing)
        !           102:        printf(" -- sz%d|kpd%d|ret(0x%x)|p%d|o%d|op%d|%s, %d", 
        !           103:            size, kpd, retcode, ports, oolports, ool, file, line); 
        !           104:     printf("\n");
        !           105: }
        !           106: 
        !           107: void
        !           108: MigEventErrors(
        !           109:        mig_who_t               who,
        !           110:        mig_which_error_t       what,
        !           111:        void                    *par,
        !           112:        char                    *file,
        !           113:        unsigned int            line)
        !           114: {
        !           115:     if (what == MACH_MSG_ERROR_UNKNOWN_ID)
        !           116:        printf("%d|%d|%d -- %s %d\n", who, what, *(int *)par, file, line); 
        !           117:     else
        !           118:        printf("%d|%d|%s -- %s %d\n", who, what, (char *)par, file, line); 
        !           119: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.