~ubuntu-branches/ubuntu/trusty/ctfutils/trusty

1 by Robert Millan
Import upstream version 9.2
1
/*
2
 * CDDL HEADER START
3
 *
4
 * The contents of this file are subject to the terms of the
5
 * Common Development and Distribution License, Version 1.0 only
6
 * (the "License").  You may not use this file except in compliance
7
 * with the License.
8
 *
9
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10
 * or http://www.opensolaris.org/os/licensing.
11
 * See the License for the specific language governing permissions
12
 * and limitations under the License.
13
 *
14
 * When distributing Covered Code, include this CDDL HEADER in each
15
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16
 * If applicable, add the following below this CDDL HEADER, with the
17
 * fields enclosed by brackets "[]" replaced with your own identifying
18
 * information: Portions Copyright [yyyy] [name of copyright owner]
19
 *
20
 * CDDL HEADER END
21
 */
22
/*
23
 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24
 * Use is subject to license terms.
25
 */
26
27
#ifndef _SYS_ASM_LINKAGE_H
28
#define	_SYS_ASM_LINKAGE_H
29
30
#ifdef	__cplusplus
31
extern "C" {
32
#endif
33
34
#ifdef _ASM	/* The remainder of this file is only for assembly files */
35
36
/*
37
 * make annoying differences in assembler syntax go away
38
 */
39
40
#if defined(__i386__) || defined(__amd64__)
41
42
#define	ASM_ENTRY_ALIGN	16
43
44
#elif defined(__sparc64__)
45
46
/* GCC uses 32-byte function alignment for UltraSPARC CPUs. */
47
#define	ASM_ENTRY_ALIGN	32
48
49
#else
50
51
#error Unsupported architecture.
52
53
#endif
54
55
/*
56
 * ENTRY provides the standard procedure entry code and an easy way to
57
 * insert the calls to mcount for profiling. ENTRY_NP is identical, but
58
 * never calls mcount.
59
 */
60
#define	ENTRY(x) \
61
	.text; \
62
	.align	ASM_ENTRY_ALIGN; \
63
	.globl	x; \
64
	.type	x, @function; \
65
x:
66
67
/*
68
 * ALTENTRY provides for additional entry points.
69
 */
70
#define	ALTENTRY(x) \
71
	.globl x; \
72
	.type	x, @function; \
73
x:
74
75
/*
76
 * SET_SIZE trails a function and set the size for the ELF symbol table.
77
 */
78
#define	SET_SIZE(x) \
79
	.size	x, [.-x]
80
81
#endif /* _ASM */
82
83
#ifdef	__cplusplus
84
}
85
#endif
86
87
#endif	/* _IA32_SYS_ASM_LINKAGE_H */