|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * pmon.h - structs and #defines for performance monitor library interfaces. ! 27: * ! 28: * History ! 29: * ------- ! 30: * 18-Dec-89 dmitch ! 31: * Created. ! 32: */ ! 33: ! 34: #import <sys/types.h> ! 35: #import <sys/message.h> ! 36: #import <machine/pmon_ipc.h> ! 37: #import <sys/boolean.h> ! 38: ! 39: /* ! 40: * pmon_vars struct. One per client, initialized in pmon_open(). ! 41: */ ! 42: struct pmon_vars { ! 43: ! 44: port_t server_port; /* pmon server's port */ ! 45: port_t reply_port; /* port thru which we communicate with ! 46: * pmon server */ ! 47: port_t event_port; /* port to which events are sent */ ! 48: pmon_event_msg_t emsg; /* contains the last event message ! 49: * received in event_port */ ! 50: pmon_event_t event_ptr; /* points to an element in ! 51: * emsg->event[], or NULL if no valid ! 52: * events. */ ! 53: int num_events; /* number of valid, unused pmon_events ! 54: * in emsg */ ! 55: }; ! 56: ! 57: typedef struct pmon_vars *pmon_vars_t; ! 58: ! 59: typedef int pmon_return_t; ! 60: ! 61: /* ! 62: * values for pmon_return_t ! 63: */ ! 64: #define PMR_SUCCESS 0 /* OK */ ! 65: #define PMR_RESOURCE -900 /* resource (memory, port) allocation ! 66: * failure */ ! 67: #define PMR_IPCFAIL -901 /* mach IPC error */ ! 68: #define PMR_ACCESS -902 /* desired events already destined for ! 69: * another viewer */ ! 70: #define PMR_BADEVENT -903 /* bad source/event */ ! 71: #define PMR_SERVCONN -904 /* couldn't connect to server */ ! 72: #define PMR_BADMSG -905 /* bad message */ ! 73: #define PMR_QUEUEFULL -906 /* destination queue full on ! 74: * msg_send() */ ! 75: #define PMR_BADPARAM -907 /* bad parameter */ ! 76: #define PMR_INTERNAL -908 /* pmon internal error */ ! 77: #define PMR_TARGCONN -909 /* couldn't connect to client */ ! 78: #define PMR_DISCONN -910 /* not connected to specified ! 79: * source/event_type */ ! 80: #define PMR_BADSTATUS -1 /* not used */ ! 81: ! 82: /* ! 83: * prototypes for library functions ! 84: */ ! 85: ! 86: /* ! 87: * client library functions ! 88: */ ! 89: pmon_return_t pmon_open(char *hostname, ! 90: pmon_vars_t *pvpp); ! 91: pmon_return_t pmon_target_cntrl(pmon_vars_t pvp, ! 92: char *hostname, ! 93: char *devname, ! 94: int source, ! 95: int msg_id, ! 96: int event_type); ! 97: pmon_return_t pmon_connect(pmon_vars_t pvp, ! 98: int source, ! 99: int event_type); ! 100: pmon_return_t pmon_disconnect(pmon_vars_t pvp, ! 101: int source, ! 102: int event_type); ! 103: void pmon_close(pmon_vars_t pvp); ! 104: pmon_return_t pmon_get_event(pmon_vars_t pvp, ! 105: pmon_event_t event_p); ! 106: void pmon_error(char *err_str, pmon_return_t err); ! 107: ! 108: /* ! 109: * target library functions ! 110: */ ! 111: void pmon_build_emsg(pmon_event_msg_t msgp, ! 112: port_t local_port, ! 113: port_t server_port); ! 114: int pmon_add_event(pmon_event_msg_t msgp, ! 115: pmon_event_t ep, ! 116: boolean_t send); ! 117: pmon_return_t pmon_send_emsg(pmon_event_msg_t msgp); ! 118: ! 119: /* end of pmon.h */ ! 120: ! 121:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.