blob: 80665ce3d781180593a20e51cf9e3252528ac5d9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(P128)
#endif
/*********************************************************************/
/* */
/* Licensed Materials - Property of IBM */
/* */
/* L-GHUS-5VMPGW, L-GHUS-5S3PEE */
/* (C) Copyright IBM Corp. 1989, 2005 All Rights Reserved */
/* */
/* US Government Users Restricted Rights - Use, duplication or */
/* disclosure restricted by GSA ADP Schedule Contract with */
/* IBM Corp. */
/* */
/*********************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef POOL_DEFS
#define POOL_DEFS
/* A datatype which identifies a block within a segment */
typedef DWORD DBLOCK; /* dpool block handle */
#define NULLBLOCK (BLOCK) 0
#define NULLDBLOCK (DBLOCK) 0
/* A structure containing a pool handle and block offset */
typedef struct /* Pointer to any block in any pool */
{
HANDLE pool; /* pool handle */
BLOCK block; /* block handle */
} BLOCKID;
typedef struct /* Pointer to any block in any pool */
{
HANDLE pool; /* pool handle */
DBLOCK block; /* block handle */
} DBLOCKID;
#define ISNULLBLOCKID(x) (((x).pool==NULLHANDLE)&&((x).block==NULLBLOCK))
/* Macro functions */
#define OSLockBlock(type,blockid) \
((type far *)(OSLock(char,(blockid).pool) + (blockid).block))
#define OSUnlockBlock(blockid) \
OSUnlockObject((blockid).pool)
#define OSSwitchBlock(ptr,thisid,nextid) \
{ \
if ((thisid).pool != (nextid).pool) \
{ \
if ((thisid).pool != NULLHANDLE) \
OSUnlockBlock((thisid)); \
ptr = OSLockBlock(void,(nextid)); \
} \
else \
{ \
register char **pptr = (char **) &(ptr); \
*pptr = *pptr + (LONG)((nextid).block - (thisid).block); \
} \
(thisid) = (nextid); \
}
#endif
#ifdef __cplusplus
}
#endif
#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(pop)
#endif
|