Deleted Added
full compact
profile.h (13157) profile.h (17879)
1/*
2 * Copyright (c) 1992, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)profile.h 8.1 (Berkeley) 6/11/93
1/*
2 * Copyright (c) 1992, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)profile.h 8.1 (Berkeley) 6/11/93
34 * $Id: profile.h,v 1.5 1995/12/29 15:28:54 bde Exp $
34 * $Id: profile.h,v 1.6 1996/01/01 17:11:21 bde Exp $
35 */
36
37#ifndef _MACHINE_PROFILE_H_
38#define _MACHINE_PROFILE_H_
39
40#ifdef KERNEL
41/*
42 * The kernel uses assembler stubs instead of unportable inlines.
43 * This is mainly to save a little time when profiling is not enabled,
44 * which is the usual case for the kernel.
45 */
46#define _MCOUNT_DECL void mcount
47#define MCOUNT
48
35 */
36
37#ifndef _MACHINE_PROFILE_H_
38#define _MACHINE_PROFILE_H_
39
40#ifdef KERNEL
41/*
42 * The kernel uses assembler stubs instead of unportable inlines.
43 * This is mainly to save a little time when profiling is not enabled,
44 * which is the usual case for the kernel.
45 */
46#define _MCOUNT_DECL void mcount
47#define MCOUNT
48
49#ifdef GUPROF
50#define CALIB_SCALE 1000
51#define KCOUNT(p,index) ((p)->kcount[(index) \
52 / (HISTFRACTION * sizeof(*(p)->kcount))])
53#define MCOUNT_DECL(s)
54#define MCOUNT_ENTER(s)
55#define MCOUNT_EXIT(s)
56#define PC_TO_I(p, pc) ((fptrint_t)(pc) - (fptrint_t)(p)->lowpc)
57#else
58#define MCOUNT_DECL(s) u_long s;
59#define MCOUNT_ENTER(s) { s = read_eflags(); disable_intr(); }
60#define MCOUNT_EXIT(s) (write_eflags(s))
61#endif /* GUPROF */
62
49#else /* !KERNEL */
50
51#define _MCOUNT_DECL static __inline void _mcount
52
53#define MCOUNT \
54void \
55mcount() \
56{ \

--- 12 unchanged lines hidden (view full) ---

69 * caller's frame following the caller's caller's frame pointer. \
70 */ \
71 asm("movl (%%ebp),%0" : "=r" (frompc)); \
72 frompc = ((fptrint_t *)frompc)[1]; \
73 _mcount(frompc, selfpc); \
74}
75#endif /* KERNEL */
76
63#else /* !KERNEL */
64
65#define _MCOUNT_DECL static __inline void _mcount
66
67#define MCOUNT \
68void \
69mcount() \
70{ \

--- 12 unchanged lines hidden (view full) ---

83 * caller's frame following the caller's caller's frame pointer. \
84 */ \
85 asm("movl (%%ebp),%0" : "=r" (frompc)); \
86 frompc = ((fptrint_t *)frompc)[1]; \
87 _mcount(frompc, selfpc); \
88}
89#endif /* KERNEL */
90
77#ifdef KERNEL
78#define CALIB_SCALE 1000
79#define KCOUNT(p,index) ((p)->kcount[(index) \
80 / (HISTFRACTION * sizeof(*(p)->kcount))])
81#define MCOUNT_ENTER { save_eflags = read_eflags(); disable_intr(); }
82#define MCOUNT_EXIT (write_eflags(save_eflags))
83#define PC_TO_I(p, pc) ((fptrint_t)(pc) - (fptrint_t)(p)->lowpc)
84#endif
85
86/* An unsigned integral type that can hold function pointers. */
87typedef u_int fptrint_t;
88
89/*
90 * An unsigned integral type that can hold non-negative difference between
91 * function pointers.
92 */
93typedef int fptrdiff_t;

--- 16 unchanged lines hidden ---
91/* An unsigned integral type that can hold function pointers. */
92typedef u_int fptrint_t;
93
94/*
95 * An unsigned integral type that can hold non-negative difference between
96 * function pointers.
97 */
98typedef int fptrdiff_t;

--- 16 unchanged lines hidden ---