]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/kern/profile.h
xnu-1228.tar.gz
[apple/xnu.git] / osfmk / kern / profile.h
diff --git a/osfmk/kern/profile.h b/osfmk/kern/profile.h
deleted file mode 100644 (file)
index 10488e8..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- */
-
-#ifndef _KERN_PROFILE_H
-#define _KERN_PROFILE_H
-
-#include <mach/boolean.h>
-#include <vm/vm_kern.h> 
-
-#define        NB_PROF_BUFFER          4       /* number of buffers servicing a */
-#define        SIZE_PROF_BUFFER        200     /* size of a profil buffer (in natural_t) */
-                                       /* -> at most 1 packet every 2 secs */
-                                       /*      profiled thread */
-
-struct prof_data {
-       struct ipc_port *prof_port;     /* where to send a full buffer */
-
-       struct buffer {
-           queue_chain_t p_list;
-           natural_t   *p_zone;        /* points to the actual storage area */
-           int p_index;                /* next slot to be filled */
-           int p_dropped;              /* # dropped samples when full */
-           boolean_t p_full;           /* is the current buffer full ? */ 
-           struct prof_data *p_prof;   /* base to get prof_port */
-           char p_wakeme;              /* do wakeup when sent */
-       } prof_area[NB_PROF_BUFFER];
-
-       int             prof_index;     /* index of the buffer structure */
-                                       /*   currently in use */
-
-};
-
-typedef struct prof_data       *prof_data_t;
-#define NULLPROFDATA ((prof_data_t) 0)
-typedef struct buffer          *buffer_t;
-#define NULLPBUF ((buffer_t) 0)
-
-/* Macros */
-
-#define        set_pbuf_nb(pbuf, nb) \
-         (((nb) >= 0 && (nb) < NB_PROF_BUFFER) \
-        ? (pbuf)->prof_index = (nb), 1 \
-        : 0)
-
-
-#define        get_pbuf_nb(pbuf) \
-       (pbuf)->prof_index
-
-
-/* MACRO set_pbuf_value 
-** 
-** enters the value 'val' in the buffer 'pbuf' and returns the following
-** indications:     0: means that a fatal error occurred: the buffer was full
-**                       (it hasn't been sent yet)
-**                  1: means that a value has been inserted successfully
-**                 2: means that we'v just entered the last value causing 
-**                     the current buffer to be full.(must switch to 
-**                     another buffer and signal the sender to send it)
-*/ 
-
-#if    MACH_PROF
-
-#define set_pbuf_value(pbuf, val) \
-        { \
-         register buffer_t a = &((pbuf)->prof_area[(pbuf)->prof_index]); \
-         register int i ;\
-         register boolean_t f = a->p_full; \
-                         \
-         if (f == TRUE ) {\
-            a->p_dropped++; \
-             *(val) = 0L; \
-         } else { \
-           i = a->p_index++; \
-           a->p_zone[i] = *(val); \
-           if (i == SIZE_PROF_BUFFER-1) { \
-               a->p_full = TRUE; \
-               *(val) = 2; \
-            } \
-            else \
-               *(val) = 1; \
-          } \
-       }
-         
-#define        reset_pbuf_area(pbuf) \
-       { \
-        int i; \
-        (pbuf)->prof_index = ((pbuf)->prof_index + 1) % NB_PROF_BUFFER; \
-        i = (pbuf)->prof_index; \
-        (pbuf)->prof_area[i].p_index = 0; \
-        (pbuf)->prof_area[i].p_dropped = 0; \
-       }
-
-#endif /* MACH_PROF */
-
-/*
-** Global variable: the head of the queue of buffers to send 
-** It is a queue with locks (uses macros from queue.h) and it
-** is shared by hardclock() and the sender_thread() 
-*/
-
-mpqueue_head_t prof_queue; 
-
-extern void    profile(
-                       natural_t       pc,         /* program counter */
-                       prof_data_t     pbuf);      /* trace/prof data area */
-
-#if MACH_PROF
-
-#define task_prof_init(task) \
-       task->task_profiled = FALSE; \
-       task->profil_buffer = NULLPROFDATA;
-
-#define thread_prof_init(thread, task) \
-       thread->profiled = task->profiled;      \
-       thread->profil_buffer = task->profil_buffer;
-
-#define task_prof_deallocate(task) \
-       if (task->profil_buffer) \
-               task_sample(task, MACH_PORT_NULL); \
-
-#define thread_prof_deallocate(thread) \
-       if (thread->profiled_own && thread->profil_buffer)  \
-               thread_sample(thread, MACH_PORT_NULL); \
-
-extern kern_return_t thread_sample(thread_t, ipc_port_t);
-extern kern_return_t task_sample(task_t, ipc_port_t);
-
-#else /* !MACH_PROT */
-
-#define task_prof_init(task)
-#define thread_prof_init(thread, task)
-#define task_prof_deallocate(task)
-#define thread_prof_deallocate(thread)
-               
-#endif /* !MACH_PROF */
-
-#endif /* _KERN_PROFILE_H */