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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-ppc64/] [iSeries/] [HvLpConfig.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * HvLpConfig.h
3
 * Copyright (C) 2001  Mike Corrigan IBM Corporation
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
18
 */
19
 
20
//===========================================================================
21
//
22
//      This file contains the interface to the LPAR configuration data
23
//  to determine which resources should be allocated to each partition.
24
//
25
//===========================================================================
26
 
27
#ifndef  _HVCALLCFG_H
28
#include "HvCallCfg.h"
29
#endif
30
 
31
#ifndef  _HVTYPES_H
32
#include <asm/iSeries/HvTypes.h>
33
#endif
34
 
35
#ifndef  _ITLPNACA_H
36
#include <asm/iSeries/ItLpNaca.h>
37
#endif
38
 
39
#ifndef  _LPARDATA_H
40
#include <asm/iSeries/LparData.h>
41
#endif
42
 
43
#ifndef _HVLPCONFIG_H
44
#define _HVLPCONFIG_H
45
 
46
//-------------------------------------------------------------------
47
// Constants
48
//-------------------------------------------------------------------
49
 
50
extern HvLpIndex HvLpConfig_getLpIndex_outline(void);
51
 
52
//===================================================================
53
static inline HvLpIndex HvLpConfig_getLpIndex(void)
54
{
55
        return itLpNaca.xLpIndex;
56
}
57
//===================================================================
58
static inline HvLpIndex HvLpConfig_getPrimaryLpIndex(void)
59
{
60
        return itLpNaca.xPrimaryLpIndex;
61
}
62
//=================================================================
63
static inline HvLpIndex HvLpConfig_getLps(void)
64
{
65
        return HvCallCfg_getLps();
66
}
67
//=================================================================
68
static inline HvLpIndexMap      HvLpConfig_getActiveLpMap(void)
69
{
70
        return HvCallCfg_getActiveLpMap();
71
}
72
//=================================================================
73
static inline u64               HvLpConfig_getSystemMsMegs(void)
74
{
75
        return HvCallCfg_getSystemMsChunks() / HVCHUNKSPERMEG;
76
}
77
//=================================================================
78
static inline u64               HvLpConfig_getSystemMsChunks(void)
79
{
80
        return HvCallCfg_getSystemMsChunks();
81
}
82
//=================================================================
83
static inline u64               HvLpConfig_getSystemMsPages(void)
84
{
85
        return HvCallCfg_getSystemMsChunks() * HVPAGESPERCHUNK;
86
}
87
//================================================================
88
static inline u64               HvLpConfig_getMsMegs(void)
89
{
90
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Cur) / HVCHUNKSPERMEG;
91
}
92
//================================================================
93
static inline u64               HvLpConfig_getMsChunks(void)
94
{
95
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Cur);
96
}
97
//================================================================
98
static inline u64               HvLpConfig_getMsPages(void)
99
{
100
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Cur) * HVPAGESPERCHUNK;
101
}
102
//================================================================
103
static inline u64               HvLpConfig_getMinMsMegs(void)
104
{
105
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Min) / HVCHUNKSPERMEG;
106
}
107
//================================================================
108
static inline u64               HvLpConfig_getMinMsChunks(void)
109
{
110
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Min);
111
}
112
//================================================================
113
static inline u64               HvLpConfig_getMinMsPages(void)
114
{
115
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Min) * HVPAGESPERCHUNK;
116
}
117
//================================================================
118
static inline u64               HvLpConfig_getMinRuntimeMsMegs(void)
119
{
120
        return HvCallCfg_getMinRuntimeMsChunks(HvLpConfig_getLpIndex()) / HVCHUNKSPERMEG;
121
}
122
//===============================================================
123
static inline u64               HvLpConfig_getMinRuntimeMsChunks(void)
124
{
125
        return HvCallCfg_getMinRuntimeMsChunks(HvLpConfig_getLpIndex());
126
}
127
//===============================================================
128
static inline u64               HvLpConfig_getMinRuntimeMsPages(void)
129
{
130
        return HvCallCfg_getMinRuntimeMsChunks(HvLpConfig_getLpIndex()) * HVPAGESPERCHUNK;
131
}
132
//===============================================================
133
static inline u64               HvLpConfig_getMaxMsMegs(void)
134
{
135
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Max) / HVCHUNKSPERMEG;
136
}
137
//===============================================================
138
static inline u64               HvLpConfig_getMaxMsChunks(void)
139
{
140
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Max);
141
}
142
//===============================================================
143
static inline u64               HvLpConfig_getMaxMsPages(void)
144
{
145
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Max) * HVPAGESPERCHUNK;
146
}
147
//===============================================================
148
static inline u64               HvLpConfig_getInitMsMegs(void)
149
{
150
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Init) / HVCHUNKSPERMEG;
151
}
152
//===============================================================
153
static inline u64               HvLpConfig_getInitMsChunks(void)
154
{
155
        return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Init);
156
}
157
//===============================================================
158
static inline u64               HvLpConfig_getInitMsPages(void)
159
{    return HvCallCfg_getMsChunks(HvLpConfig_getLpIndex(),HvCallCfg_Init) * HVPAGESPERCHUNK;
160
}
161
//===============================================================
162
static inline u64               HvLpConfig_getSystemPhysicalProcessors(void)
163
{
164
        return HvCallCfg_getSystemPhysicalProcessors();
165
}
166
//===============================================================
167
static inline u64               HvLpConfig_getSystemLogicalProcessors(void)
168
{
169
        return HvCallCfg_getSystemPhysicalProcessors() * (/*getPaca()->getSecondaryThreadCount() +*/ 1);
170
}
171
//===============================================================
172
static inline u64               HvLpConfig_getNumProcsInSharedPool(HvLpSharedPoolIndex sPI)
173
{
174
        return HvCallCfg_getNumProcsInSharedPool(sPI);
175
}
176
//===============================================================
177
static inline u64               HvLpConfig_getPhysicalProcessors(void)
178
{
179
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Cur);
180
}
181
//===============================================================
182
static inline u64               HvLpConfig_getLogicalProcessors(void)
183
{
184
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Cur) * (/*getPaca()->getSecondaryThreadCount() +*/ 1);
185
}
186
//===============================================================
187
static inline HvLpSharedPoolIndex       HvLpConfig_getSharedPoolIndex(void)
188
{
189
        return HvCallCfg_getSharedPoolIndex(HvLpConfig_getLpIndex());
190
}
191
//===============================================================
192
static inline u64               HvLpConfig_getSharedProcUnits(void)
193
{
194
        return HvCallCfg_getSharedProcUnits(HvLpConfig_getLpIndex(),HvCallCfg_Cur);
195
}
196
//===============================================================
197
static inline u64               HvLpConfig_getMinSharedProcUnits(void)
198
{
199
        return HvCallCfg_getSharedProcUnits(HvLpConfig_getLpIndex(),HvCallCfg_Min);
200
}
201
//===============================================================
202
static inline u64               HvLpConfig_getMaxSharedProcUnits(void)
203
{
204
        return HvCallCfg_getSharedProcUnits(HvLpConfig_getLpIndex(),HvCallCfg_Max);
205
}
206
//===============================================================
207
static inline u64               HvLpConfig_getMinPhysicalProcessors(void)
208
{
209
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Min);
210
}
211
//===============================================================
212
static inline u64               HvLpConfig_getMinLogicalProcessors(void)
213
{
214
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Min) * (/*getPaca()->getSecondaryThreadCount() +*/ 1);
215
}
216
//===============================================================
217
static inline u64               HvLpConfig_getMaxPhysicalProcessors(void)
218
{
219
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Max);
220
}
221
//===============================================================
222
static inline u64               HvLpConfig_getMaxLogicalProcessors(void)
223
{
224
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Max) * (/*getPaca()->getSecondaryThreadCount() +*/ 1);
225
}
226
//===============================================================
227
static inline u64               HvLpConfig_getInitPhysicalProcessors(void)
228
{
229
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Init);
230
}
231
//===============================================================
232
static inline u64               HvLpConfig_getInitLogicalProcessors(void)
233
{
234
        return HvCallCfg_getPhysicalProcessors(HvLpConfig_getLpIndex(),HvCallCfg_Init) * (/*getPaca()->getSecondaryThreadCount() +*/ 1);
235
}
236
//================================================================
237
static inline HvLpVirtualLanIndexMap    HvLpConfig_getVirtualLanIndexMap(void)
238
{
239
        return HvCallCfg_getVirtualLanIndexMap(HvLpConfig_getLpIndex_outline());
240
}
241
//===============================================================
242
static inline HvLpVirtualLanIndexMap    HvLpConfig_getVirtualLanIndexMapForLp(HvLpIndex lp)
243
{
244
        return HvCallCfg_getVirtualLanIndexMap(lp);
245
}
246
//================================================================
247
static inline HvLpIndex HvLpConfig_getBusOwner(HvBusNumber busNumber)
248
{
249
        return HvCallCfg_getBusOwner(busNumber);
250
}
251
//===============================================================
252
static inline int               HvLpConfig_isBusDedicated(HvBusNumber busNumber)
253
{
254
        return HvCallCfg_isBusDedicated(busNumber);
255
}
256
//================================================================
257
static inline HvLpIndexMap      HvLpConfig_getBusAllocation(HvBusNumber busNumber)
258
{
259
        return HvCallCfg_getBusAllocation(busNumber);
260
}
261
//================================================================
262
// returns the absolute real address of the load area
263
static inline u64               HvLpConfig_getLoadAddress(void)
264
{
265
        return itLpNaca.xLoadAreaAddr & 0x7fffffffffffffff;
266
}
267
//================================================================
268
static inline u64               HvLpConfig_getLoadPages(void)
269
{
270
        return itLpNaca.xLoadAreaChunks * HVPAGESPERCHUNK;
271
}
272
//================================================================
273
static inline int               HvLpConfig_isBusOwnedByThisLp(HvBusNumber busNumber)
274
{
275
        HvLpIndex busOwner = HvLpConfig_getBusOwner(busNumber);
276
        return (busOwner == HvLpConfig_getLpIndex());
277
}
278
//================================================================
279
static inline int         HvLpConfig_doLpsCommunicateOnVirtualLan(HvLpIndex lp1, HvLpIndex lp2)
280
{
281
        HvLpVirtualLanIndexMap virtualLanIndexMap1 = HvCallCfg_getVirtualLanIndexMap( lp1 );
282
        HvLpVirtualLanIndexMap virtualLanIndexMap2 = HvCallCfg_getVirtualLanIndexMap( lp2 );
283
        return ((virtualLanIndexMap1 & virtualLanIndexMap2) != 0);
284
}
285
//================================================================
286
static inline HvLpIndex         HvLpConfig_getHostingLpIndex(HvLpIndex lp)
287
{
288
        return HvCallCfg_getHostingLpIndex(lp);
289
}
290
//================================================================
291
 
292
#endif // _HVLPCONFIG_H

powered by: WebSVN 2.1.0

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