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

« back to all changes in this revision

Viewing changes to sys/cddl/contrib/opensolaris/uts/common/sys/asm_linkage.h

  • Committer: Package Import Robot
  • Author(s): Robert Millan
  • Date: 2013-11-09 17:07:06 UTC
  • Revision ID: package-import@ubuntu.com-20131109170706-kacr6nvpkbhxsk81
Tags: upstream-9.2
ImportĀ upstreamĀ versionĀ 9.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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 */