profile.h revision 209617
1193323Sed/*- 2193323Sed * Copyright (c) 2004 Marcel Moolenaar 3193323Sed * All rights reserved. 4193323Sed * 5193323Sed * Redistribution and use in source and binary forms, with or without 6193323Sed * modification, are permitted provided that the following conditions 7193323Sed * are met: 8193323Sed * 9193323Sed * 1. Redistributions of source code must retain the above copyright 10193323Sed * notice, this list of conditions and the following disclaimer. 11193323Sed * 2. Redistributions in binary form must reproduce the above copyright 12193323Sed * notice, this list of conditions and the following disclaimer in the 13193323Sed * documentation and/or other materials provided with the distribution. 14193323Sed * 15193323Sed * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16193323Sed * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17193323Sed * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18193323Sed * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19193323Sed * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20193323Sed * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21193323Sed * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22193323Sed * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23193323Sed * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24193323Sed * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25218893Sdim * 26218893Sdim * $FreeBSD: head/sys/ia64/include/profile.h 209617 2010-06-30 22:29:02Z marcel $ 27198090Srdivacky */ 28193323Sed 29193323Sed#ifndef _MACHINE_PROFILE_H_ 30193323Sed#define _MACHINE_PROFILE_H_ 31193323Sed 32193323Sed#define _MCOUNT_DECL void __mcount 33205218Srdivacky#define MCOUNT 34193323Sed 35193323Sed#define FUNCTION_ALIGNMENT 16 36218893Sdim 37193323Sedtypedef unsigned long fptrdiff_t; 38193323Sed 39212904Sdim#ifdef _KERNEL 40193323Sed/* 41193323Sed * The following two macros do splhigh and splx respectively. 42193323Sed */ 43198090Srdivacky#define MCOUNT_ENTER(s) s = intr_disable() 44205218Srdivacky#define MCOUNT_EXIT(s) intr_restore(s) 45218893Sdim#define MCOUNT_DECL(s) register_t s; 46193323Sed 47193323Sedvoid bintr(void); 48193323Sedvoid btrap(void); 49218893Sdimvoid eintr(void); 50218893Sdimvoid user(void); 51218893Sdim 52218893Sdim#define MCOUNT_FROMPC_USER(pc) \ 53218893Sdim ((pc < (uintfptr_t)VM_MAXUSER_ADDRESS) ? ~0UL : pc) 54218893Sdim 55218893Sdim#define MCOUNT_FROMPC_INTR(pc) (~0UL) 56218893Sdim 57218893Sdim_MCOUNT_DECL(uintfptr_t, uintfptr_t); 58218893Sdim 59218893Sdim#else /* !_KERNEL */ 60218893Sdim 61212904Sdimtypedef unsigned long uintfptr_t; 62212904Sdim 63212904Sdim#endif 64218893Sdim 65212904Sdim#endif /* _MACHINE_PROFILE_H_ */ 66193323Sed