OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [gdb/] [osf-share/] [cma_init.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
/*
2
 * (c) Copyright 1990-1996 OPEN SOFTWARE FOUNDATION, INC.
3
 * (c) Copyright 1990-1996 HEWLETT-PACKARD COMPANY
4
 * (c) Copyright 1990-1996 DIGITAL EQUIPMENT CORPORATION
5
 * (c) Copyright 1991, 1992 Siemens-Nixdorf Information Systems
6
 * To anyone who acknowledges that this file is provided "AS IS" without
7
 * any express or implied warranty: permission to use, copy, modify, and
8
 * distribute this file for any purpose is hereby granted without fee,
9
 * provided that the above copyright notices and this notice appears in
10
 * all source code copies, and that none of the names listed above be used
11
 * in advertising or publicity pertaining to distribution of the software
12
 * without specific, written prior permission.  None of these organizations
13
 * makes any representations about the suitability of this software for
14
 * any purpose.
15
 */
16
/*
17
 *      Header file for CMA initialization
18
 */
19
 
20
#ifndef CMA_INIT
21
#define CMA_INIT
22
 
23
/*
24
 *  INCLUDE FILES
25
 */
26
#include <dce/cma_host.h>
27
#include <cma_errors.h>
28
 
29
/*
30
 * CONSTANTS AND MACROS
31
 */
32
 
33
#define cma__c_env_maxattr      0
34
#define cma__c_env_minattr      1
35
#define cma__c_env_maxcond      2
36
#define cma__c_env_mincond      3
37
#define cma__c_env_maxmutex     4
38
#define cma__c_env_minmutex     5
39
#define cma__c_env_maxthread    6
40
#define cma__c_env_minthread    7
41
#define cma__c_env_maxcluster   8
42
#define cma__c_env_mincluster   9
43
#define cma__c_env_maxvp        10
44
#define cma__c_env_multiplex    11
45
#define cma__c_env_trace        12
46
#define cma__c_env_trace_file   13
47
 
48
#define cma__c_env_count        13
49
 
50
 
51
/*
52
 * cma__int_init
53
 *
54
 * Initialize the main body of CMA exactly once.
55
 *
56
 * We raise an exception if, for some odd reason, there are already threads
57
 * in the environment (e.g. kernel threads), and one of them is trying to
58
 * initialize CMA before the  first thread got all the way through the actual
59
 * initialization. This code maintains the invariants: "after successfully
60
 * calling CMA_INIT, you can call any CMA function", and  "CMA is actually
61
 * initialized at most once".
62
 */
63
/*#ifndef _HP_LIBC_R */
64
 
65
#if  defined _HP_LIBC_R  ||(defined(SNI_SVR4) && !defined(CMA_INIT_NEEDED))
66
# define cma__int_init()
67
#else
68
# define cma__int_init() { \
69
    if (!cma__tac_isset(&cma__g_init_started)) { \
70
        if (!cma__test_and_set (&cma__g_init_started)) { \
71
            cma__init_static (); \
72
            cma__test_and_set (&cma__g_init_done); \
73
            } \
74
        else if (!cma__tac_isset (&cma__g_init_done)) { \
75
            cma__error (cma_s_inialrpro); \
76
    }}}
77
#endif
78
 
79
/*
80
 * TYPEDEFS
81
 */
82
 
83
typedef enum CMA__T_ENV_TYPE {
84
    cma__c_env_type_int,
85
    cma__c_env_type_file
86
    } cma__t_env_type;
87
 
88
typedef struct CMA__T_ENV {
89
    char                *name;          /* Name of environment variable */
90
    cma__t_env_type     type;           /* Type of variable */
91
    cma_t_integer       value;          /* Numeric value of the variable */
92
    } cma__t_env;
93
 
94
/*
95
 *  GLOBAL DATA
96
 */
97
 
98
extern cma__t_env               cma__g_env[cma__c_env_count];
99
extern cma__t_atomic_bit        cma__g_init_started;
100
extern cma__t_atomic_bit        cma__g_init_done;
101
extern char                     *cma__g_version;
102
 
103
/*
104
 * INTERNAL INTERFACES
105
 */
106
 
107
extern void
108
cma__init_static (void);        /* Initialize static data */
109
 
110
#if _CMA_OS_ != _CMA__VMS
111
extern void cma__init_atfork (void);
112
#endif
113
 
114
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.