Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/parisc/kernel/asm-offsets.c
26288 views
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
/*
3
* Generate definitions needed by assembly language modules.
4
* This code generates raw asm output which is post-processed to extract
5
* and format the required data.
6
*
7
* Copyright (C) 2000-2001 John Marvin <jsm at parisc-linux.org>
8
* Copyright (C) 2000 David Huggins-Daines <dhd with pobox.org>
9
* Copyright (C) 2000 Sam Creasey <[email protected]>
10
* Copyright (C) 2000 Grant Grundler <grundler with parisc-linux.org>
11
* Copyright (C) 2001 Paul Bame <bame at parisc-linux.org>
12
* Copyright (C) 2001 Richard Hirst <rhirst at parisc-linux.org>
13
* Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org>
14
* Copyright (C) 2003 James Bottomley <jejb at parisc-linux.org>
15
*/
16
17
#include <linux/types.h>
18
#include <linux/sched.h>
19
#include <linux/thread_info.h>
20
#include <linux/ptrace.h>
21
#include <linux/hardirq.h>
22
#include <linux/kbuild.h>
23
#include <linux/pgtable.h>
24
25
#include <asm/assembly.h>
26
#include <asm/ptrace.h>
27
#include <asm/processor.h>
28
#include <asm/pdc.h>
29
#include <uapi/asm/sigcontext.h>
30
#include <asm/ucontext.h>
31
#include <asm/rt_sigframe.h>
32
#include <linux/uaccess.h>
33
#include "signal32.h"
34
35
/* Add FRAME_SIZE to the size x and align it to y. All definitions
36
* that use align_frame will include space for a frame.
37
*/
38
#define align_frame(x,y) (((x)+FRAME_SIZE+(y)-1) - (((x)+(y)-1)%(y)))
39
40
int main(void)
41
{
42
DEFINE(TASK_TI_FLAGS, offsetof(struct task_struct, thread_info.flags));
43
#ifdef CONFIG_SMP
44
DEFINE(TASK_TI_CPU, offsetof(struct task_struct, thread_info.cpu));
45
#endif
46
DEFINE(TASK_STACK, offsetof(struct task_struct, stack));
47
DEFINE(TASK_PAGEFAULT_DISABLED, offsetof(struct task_struct, pagefault_disabled));
48
BLANK();
49
DEFINE(TASK_REGS, offsetof(struct task_struct, thread.regs));
50
DEFINE(TASK_PT_PSW, offsetof(struct task_struct, thread.regs.gr[ 0]));
51
DEFINE(TASK_PT_GR1, offsetof(struct task_struct, thread.regs.gr[ 1]));
52
DEFINE(TASK_PT_GR2, offsetof(struct task_struct, thread.regs.gr[ 2]));
53
DEFINE(TASK_PT_GR3, offsetof(struct task_struct, thread.regs.gr[ 3]));
54
DEFINE(TASK_PT_GR4, offsetof(struct task_struct, thread.regs.gr[ 4]));
55
DEFINE(TASK_PT_GR5, offsetof(struct task_struct, thread.regs.gr[ 5]));
56
DEFINE(TASK_PT_GR6, offsetof(struct task_struct, thread.regs.gr[ 6]));
57
DEFINE(TASK_PT_GR7, offsetof(struct task_struct, thread.regs.gr[ 7]));
58
DEFINE(TASK_PT_GR8, offsetof(struct task_struct, thread.regs.gr[ 8]));
59
DEFINE(TASK_PT_GR9, offsetof(struct task_struct, thread.regs.gr[ 9]));
60
DEFINE(TASK_PT_GR10, offsetof(struct task_struct, thread.regs.gr[10]));
61
DEFINE(TASK_PT_GR11, offsetof(struct task_struct, thread.regs.gr[11]));
62
DEFINE(TASK_PT_GR12, offsetof(struct task_struct, thread.regs.gr[12]));
63
DEFINE(TASK_PT_GR13, offsetof(struct task_struct, thread.regs.gr[13]));
64
DEFINE(TASK_PT_GR14, offsetof(struct task_struct, thread.regs.gr[14]));
65
DEFINE(TASK_PT_GR15, offsetof(struct task_struct, thread.regs.gr[15]));
66
DEFINE(TASK_PT_GR16, offsetof(struct task_struct, thread.regs.gr[16]));
67
DEFINE(TASK_PT_GR17, offsetof(struct task_struct, thread.regs.gr[17]));
68
DEFINE(TASK_PT_GR18, offsetof(struct task_struct, thread.regs.gr[18]));
69
DEFINE(TASK_PT_GR19, offsetof(struct task_struct, thread.regs.gr[19]));
70
DEFINE(TASK_PT_GR20, offsetof(struct task_struct, thread.regs.gr[20]));
71
DEFINE(TASK_PT_GR21, offsetof(struct task_struct, thread.regs.gr[21]));
72
DEFINE(TASK_PT_GR22, offsetof(struct task_struct, thread.regs.gr[22]));
73
DEFINE(TASK_PT_GR23, offsetof(struct task_struct, thread.regs.gr[23]));
74
DEFINE(TASK_PT_GR24, offsetof(struct task_struct, thread.regs.gr[24]));
75
DEFINE(TASK_PT_GR25, offsetof(struct task_struct, thread.regs.gr[25]));
76
DEFINE(TASK_PT_GR26, offsetof(struct task_struct, thread.regs.gr[26]));
77
DEFINE(TASK_PT_GR27, offsetof(struct task_struct, thread.regs.gr[27]));
78
DEFINE(TASK_PT_GR28, offsetof(struct task_struct, thread.regs.gr[28]));
79
DEFINE(TASK_PT_GR29, offsetof(struct task_struct, thread.regs.gr[29]));
80
DEFINE(TASK_PT_GR30, offsetof(struct task_struct, thread.regs.gr[30]));
81
DEFINE(TASK_PT_GR31, offsetof(struct task_struct, thread.regs.gr[31]));
82
DEFINE(TASK_PT_FR0, offsetof(struct task_struct, thread.regs.fr[ 0]));
83
DEFINE(TASK_PT_FR1, offsetof(struct task_struct, thread.regs.fr[ 1]));
84
DEFINE(TASK_PT_FR2, offsetof(struct task_struct, thread.regs.fr[ 2]));
85
DEFINE(TASK_PT_FR3, offsetof(struct task_struct, thread.regs.fr[ 3]));
86
DEFINE(TASK_PT_FR4, offsetof(struct task_struct, thread.regs.fr[ 4]));
87
DEFINE(TASK_PT_FR5, offsetof(struct task_struct, thread.regs.fr[ 5]));
88
DEFINE(TASK_PT_FR6, offsetof(struct task_struct, thread.regs.fr[ 6]));
89
DEFINE(TASK_PT_FR7, offsetof(struct task_struct, thread.regs.fr[ 7]));
90
DEFINE(TASK_PT_FR8, offsetof(struct task_struct, thread.regs.fr[ 8]));
91
DEFINE(TASK_PT_FR9, offsetof(struct task_struct, thread.regs.fr[ 9]));
92
DEFINE(TASK_PT_FR10, offsetof(struct task_struct, thread.regs.fr[10]));
93
DEFINE(TASK_PT_FR11, offsetof(struct task_struct, thread.regs.fr[11]));
94
DEFINE(TASK_PT_FR12, offsetof(struct task_struct, thread.regs.fr[12]));
95
DEFINE(TASK_PT_FR13, offsetof(struct task_struct, thread.regs.fr[13]));
96
DEFINE(TASK_PT_FR14, offsetof(struct task_struct, thread.regs.fr[14]));
97
DEFINE(TASK_PT_FR15, offsetof(struct task_struct, thread.regs.fr[15]));
98
DEFINE(TASK_PT_FR16, offsetof(struct task_struct, thread.regs.fr[16]));
99
DEFINE(TASK_PT_FR17, offsetof(struct task_struct, thread.regs.fr[17]));
100
DEFINE(TASK_PT_FR18, offsetof(struct task_struct, thread.regs.fr[18]));
101
DEFINE(TASK_PT_FR19, offsetof(struct task_struct, thread.regs.fr[19]));
102
DEFINE(TASK_PT_FR20, offsetof(struct task_struct, thread.regs.fr[20]));
103
DEFINE(TASK_PT_FR21, offsetof(struct task_struct, thread.regs.fr[21]));
104
DEFINE(TASK_PT_FR22, offsetof(struct task_struct, thread.regs.fr[22]));
105
DEFINE(TASK_PT_FR23, offsetof(struct task_struct, thread.regs.fr[23]));
106
DEFINE(TASK_PT_FR24, offsetof(struct task_struct, thread.regs.fr[24]));
107
DEFINE(TASK_PT_FR25, offsetof(struct task_struct, thread.regs.fr[25]));
108
DEFINE(TASK_PT_FR26, offsetof(struct task_struct, thread.regs.fr[26]));
109
DEFINE(TASK_PT_FR27, offsetof(struct task_struct, thread.regs.fr[27]));
110
DEFINE(TASK_PT_FR28, offsetof(struct task_struct, thread.regs.fr[28]));
111
DEFINE(TASK_PT_FR29, offsetof(struct task_struct, thread.regs.fr[29]));
112
DEFINE(TASK_PT_FR30, offsetof(struct task_struct, thread.regs.fr[30]));
113
DEFINE(TASK_PT_FR31, offsetof(struct task_struct, thread.regs.fr[31]));
114
DEFINE(TASK_PT_SR0, offsetof(struct task_struct, thread.regs.sr[ 0]));
115
DEFINE(TASK_PT_SR1, offsetof(struct task_struct, thread.regs.sr[ 1]));
116
DEFINE(TASK_PT_SR2, offsetof(struct task_struct, thread.regs.sr[ 2]));
117
DEFINE(TASK_PT_SR3, offsetof(struct task_struct, thread.regs.sr[ 3]));
118
DEFINE(TASK_PT_SR4, offsetof(struct task_struct, thread.regs.sr[ 4]));
119
DEFINE(TASK_PT_SR5, offsetof(struct task_struct, thread.regs.sr[ 5]));
120
DEFINE(TASK_PT_SR6, offsetof(struct task_struct, thread.regs.sr[ 6]));
121
DEFINE(TASK_PT_SR7, offsetof(struct task_struct, thread.regs.sr[ 7]));
122
DEFINE(TASK_PT_IASQ0, offsetof(struct task_struct, thread.regs.iasq[0]));
123
DEFINE(TASK_PT_IASQ1, offsetof(struct task_struct, thread.regs.iasq[1]));
124
DEFINE(TASK_PT_IAOQ0, offsetof(struct task_struct, thread.regs.iaoq[0]));
125
DEFINE(TASK_PT_IAOQ1, offsetof(struct task_struct, thread.regs.iaoq[1]));
126
DEFINE(TASK_PT_CR27, offsetof(struct task_struct, thread.regs.cr27));
127
DEFINE(TASK_PT_ORIG_R28, offsetof(struct task_struct, thread.regs.orig_r28));
128
DEFINE(TASK_PT_KSP, offsetof(struct task_struct, thread.regs.ksp));
129
DEFINE(TASK_PT_KPC, offsetof(struct task_struct, thread.regs.kpc));
130
DEFINE(TASK_PT_SAR, offsetof(struct task_struct, thread.regs.sar));
131
DEFINE(TASK_PT_IIR, offsetof(struct task_struct, thread.regs.iir));
132
DEFINE(TASK_PT_ISR, offsetof(struct task_struct, thread.regs.isr));
133
DEFINE(TASK_PT_IOR, offsetof(struct task_struct, thread.regs.ior));
134
BLANK();
135
DEFINE(PT_PSW, offsetof(struct pt_regs, gr[ 0]));
136
DEFINE(PT_GR1, offsetof(struct pt_regs, gr[ 1]));
137
DEFINE(PT_GR2, offsetof(struct pt_regs, gr[ 2]));
138
DEFINE(PT_GR3, offsetof(struct pt_regs, gr[ 3]));
139
DEFINE(PT_GR4, offsetof(struct pt_regs, gr[ 4]));
140
DEFINE(PT_GR5, offsetof(struct pt_regs, gr[ 5]));
141
DEFINE(PT_GR6, offsetof(struct pt_regs, gr[ 6]));
142
DEFINE(PT_GR7, offsetof(struct pt_regs, gr[ 7]));
143
DEFINE(PT_GR8, offsetof(struct pt_regs, gr[ 8]));
144
DEFINE(PT_GR9, offsetof(struct pt_regs, gr[ 9]));
145
DEFINE(PT_GR10, offsetof(struct pt_regs, gr[10]));
146
DEFINE(PT_GR11, offsetof(struct pt_regs, gr[11]));
147
DEFINE(PT_GR12, offsetof(struct pt_regs, gr[12]));
148
DEFINE(PT_GR13, offsetof(struct pt_regs, gr[13]));
149
DEFINE(PT_GR14, offsetof(struct pt_regs, gr[14]));
150
DEFINE(PT_GR15, offsetof(struct pt_regs, gr[15]));
151
DEFINE(PT_GR16, offsetof(struct pt_regs, gr[16]));
152
DEFINE(PT_GR17, offsetof(struct pt_regs, gr[17]));
153
DEFINE(PT_GR18, offsetof(struct pt_regs, gr[18]));
154
DEFINE(PT_GR19, offsetof(struct pt_regs, gr[19]));
155
DEFINE(PT_GR20, offsetof(struct pt_regs, gr[20]));
156
DEFINE(PT_GR21, offsetof(struct pt_regs, gr[21]));
157
DEFINE(PT_GR22, offsetof(struct pt_regs, gr[22]));
158
DEFINE(PT_GR23, offsetof(struct pt_regs, gr[23]));
159
DEFINE(PT_GR24, offsetof(struct pt_regs, gr[24]));
160
DEFINE(PT_GR25, offsetof(struct pt_regs, gr[25]));
161
DEFINE(PT_GR26, offsetof(struct pt_regs, gr[26]));
162
DEFINE(PT_GR27, offsetof(struct pt_regs, gr[27]));
163
DEFINE(PT_GR28, offsetof(struct pt_regs, gr[28]));
164
DEFINE(PT_GR29, offsetof(struct pt_regs, gr[29]));
165
DEFINE(PT_GR30, offsetof(struct pt_regs, gr[30]));
166
DEFINE(PT_GR31, offsetof(struct pt_regs, gr[31]));
167
DEFINE(PT_FR0, offsetof(struct pt_regs, fr[ 0]));
168
DEFINE(PT_FR1, offsetof(struct pt_regs, fr[ 1]));
169
DEFINE(PT_FR2, offsetof(struct pt_regs, fr[ 2]));
170
DEFINE(PT_FR3, offsetof(struct pt_regs, fr[ 3]));
171
DEFINE(PT_FR4, offsetof(struct pt_regs, fr[ 4]));
172
DEFINE(PT_FR5, offsetof(struct pt_regs, fr[ 5]));
173
DEFINE(PT_FR6, offsetof(struct pt_regs, fr[ 6]));
174
DEFINE(PT_FR7, offsetof(struct pt_regs, fr[ 7]));
175
DEFINE(PT_FR8, offsetof(struct pt_regs, fr[ 8]));
176
DEFINE(PT_FR9, offsetof(struct pt_regs, fr[ 9]));
177
DEFINE(PT_FR10, offsetof(struct pt_regs, fr[10]));
178
DEFINE(PT_FR11, offsetof(struct pt_regs, fr[11]));
179
DEFINE(PT_FR12, offsetof(struct pt_regs, fr[12]));
180
DEFINE(PT_FR13, offsetof(struct pt_regs, fr[13]));
181
DEFINE(PT_FR14, offsetof(struct pt_regs, fr[14]));
182
DEFINE(PT_FR15, offsetof(struct pt_regs, fr[15]));
183
DEFINE(PT_FR16, offsetof(struct pt_regs, fr[16]));
184
DEFINE(PT_FR17, offsetof(struct pt_regs, fr[17]));
185
DEFINE(PT_FR18, offsetof(struct pt_regs, fr[18]));
186
DEFINE(PT_FR19, offsetof(struct pt_regs, fr[19]));
187
DEFINE(PT_FR20, offsetof(struct pt_regs, fr[20]));
188
DEFINE(PT_FR21, offsetof(struct pt_regs, fr[21]));
189
DEFINE(PT_FR22, offsetof(struct pt_regs, fr[22]));
190
DEFINE(PT_FR23, offsetof(struct pt_regs, fr[23]));
191
DEFINE(PT_FR24, offsetof(struct pt_regs, fr[24]));
192
DEFINE(PT_FR25, offsetof(struct pt_regs, fr[25]));
193
DEFINE(PT_FR26, offsetof(struct pt_regs, fr[26]));
194
DEFINE(PT_FR27, offsetof(struct pt_regs, fr[27]));
195
DEFINE(PT_FR28, offsetof(struct pt_regs, fr[28]));
196
DEFINE(PT_FR29, offsetof(struct pt_regs, fr[29]));
197
DEFINE(PT_FR30, offsetof(struct pt_regs, fr[30]));
198
DEFINE(PT_FR31, offsetof(struct pt_regs, fr[31]));
199
DEFINE(PT_SR0, offsetof(struct pt_regs, sr[ 0]));
200
DEFINE(PT_SR1, offsetof(struct pt_regs, sr[ 1]));
201
DEFINE(PT_SR2, offsetof(struct pt_regs, sr[ 2]));
202
DEFINE(PT_SR3, offsetof(struct pt_regs, sr[ 3]));
203
DEFINE(PT_SR4, offsetof(struct pt_regs, sr[ 4]));
204
DEFINE(PT_SR5, offsetof(struct pt_regs, sr[ 5]));
205
DEFINE(PT_SR6, offsetof(struct pt_regs, sr[ 6]));
206
DEFINE(PT_SR7, offsetof(struct pt_regs, sr[ 7]));
207
DEFINE(PT_IASQ0, offsetof(struct pt_regs, iasq[0]));
208
DEFINE(PT_IASQ1, offsetof(struct pt_regs, iasq[1]));
209
DEFINE(PT_IAOQ0, offsetof(struct pt_regs, iaoq[0]));
210
DEFINE(PT_IAOQ1, offsetof(struct pt_regs, iaoq[1]));
211
DEFINE(PT_CR27, offsetof(struct pt_regs, cr27));
212
DEFINE(PT_ORIG_R28, offsetof(struct pt_regs, orig_r28));
213
DEFINE(PT_KSP, offsetof(struct pt_regs, ksp));
214
DEFINE(PT_KPC, offsetof(struct pt_regs, kpc));
215
DEFINE(PT_SAR, offsetof(struct pt_regs, sar));
216
DEFINE(PT_IIR, offsetof(struct pt_regs, iir));
217
DEFINE(PT_ISR, offsetof(struct pt_regs, isr));
218
DEFINE(PT_IOR, offsetof(struct pt_regs, ior));
219
/* PT_SZ_ALGN includes space for a stack frame. */
220
DEFINE(PT_SZ_ALGN, align_frame(sizeof(struct pt_regs), FRAME_ALIGN));
221
BLANK();
222
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
223
DEFINE(TI_PRE_COUNT, offsetof(struct task_struct, thread_info.preempt_count));
224
BLANK();
225
DEFINE(ASM_SIGFRAME_SIZE, PARISC_RT_SIGFRAME_SIZE);
226
DEFINE(SIGFRAME_CONTEXT_REGS, offsetof(struct rt_sigframe, uc.uc_mcontext) - PARISC_RT_SIGFRAME_SIZE);
227
#ifdef CONFIG_64BIT
228
DEFINE(ASM_SIGFRAME_SIZE32, PARISC_RT_SIGFRAME_SIZE32);
229
DEFINE(SIGFRAME_CONTEXT_REGS32, offsetof(struct compat_rt_sigframe, uc.uc_mcontext) - PARISC_RT_SIGFRAME_SIZE32);
230
#else
231
DEFINE(ASM_SIGFRAME_SIZE32, PARISC_RT_SIGFRAME_SIZE);
232
DEFINE(SIGFRAME_CONTEXT_REGS32, offsetof(struct rt_sigframe, uc.uc_mcontext) - PARISC_RT_SIGFRAME_SIZE);
233
#endif
234
BLANK();
235
DEFINE(ICACHE_BASE, offsetof(struct pdc_cache_info, ic_base));
236
DEFINE(ICACHE_STRIDE, offsetof(struct pdc_cache_info, ic_stride));
237
DEFINE(ICACHE_COUNT, offsetof(struct pdc_cache_info, ic_count));
238
DEFINE(ICACHE_LOOP, offsetof(struct pdc_cache_info, ic_loop));
239
DEFINE(DCACHE_BASE, offsetof(struct pdc_cache_info, dc_base));
240
DEFINE(DCACHE_STRIDE, offsetof(struct pdc_cache_info, dc_stride));
241
DEFINE(DCACHE_COUNT, offsetof(struct pdc_cache_info, dc_count));
242
DEFINE(DCACHE_LOOP, offsetof(struct pdc_cache_info, dc_loop));
243
DEFINE(ITLB_SID_BASE, offsetof(struct pdc_cache_info, it_sp_base));
244
DEFINE(ITLB_SID_STRIDE, offsetof(struct pdc_cache_info, it_sp_stride));
245
DEFINE(ITLB_SID_COUNT, offsetof(struct pdc_cache_info, it_sp_count));
246
DEFINE(ITLB_OFF_BASE, offsetof(struct pdc_cache_info, it_off_base));
247
DEFINE(ITLB_OFF_STRIDE, offsetof(struct pdc_cache_info, it_off_stride));
248
DEFINE(ITLB_OFF_COUNT, offsetof(struct pdc_cache_info, it_off_count));
249
DEFINE(ITLB_LOOP, offsetof(struct pdc_cache_info, it_loop));
250
DEFINE(DTLB_SID_BASE, offsetof(struct pdc_cache_info, dt_sp_base));
251
DEFINE(DTLB_SID_STRIDE, offsetof(struct pdc_cache_info, dt_sp_stride));
252
DEFINE(DTLB_SID_COUNT, offsetof(struct pdc_cache_info, dt_sp_count));
253
DEFINE(DTLB_OFF_BASE, offsetof(struct pdc_cache_info, dt_off_base));
254
DEFINE(DTLB_OFF_STRIDE, offsetof(struct pdc_cache_info, dt_off_stride));
255
DEFINE(DTLB_OFF_COUNT, offsetof(struct pdc_cache_info, dt_off_count));
256
DEFINE(DTLB_LOOP, offsetof(struct pdc_cache_info, dt_loop));
257
BLANK();
258
DEFINE(TIF_BLOCKSTEP_PA_BIT, 31-TIF_BLOCKSTEP);
259
DEFINE(TIF_SINGLESTEP_PA_BIT, 31-TIF_SINGLESTEP);
260
BLANK();
261
DEFINE(ASM_PMD_SHIFT, PMD_SHIFT);
262
DEFINE(ASM_PGDIR_SHIFT, PGDIR_SHIFT);
263
DEFINE(ASM_BITS_PER_PGD, BITS_PER_PGD);
264
DEFINE(ASM_BITS_PER_PMD, BITS_PER_PMD);
265
DEFINE(ASM_BITS_PER_PTE, BITS_PER_PTE);
266
DEFINE(ASM_PMD_ENTRY, ((PAGE_OFFSET & PMD_MASK) >> PMD_SHIFT));
267
DEFINE(ASM_PGD_ENTRY, PAGE_OFFSET >> PGDIR_SHIFT);
268
DEFINE(ASM_PGD_ENTRY_SIZE, PGD_ENTRY_SIZE);
269
DEFINE(ASM_PMD_ENTRY_SIZE, PMD_ENTRY_SIZE);
270
DEFINE(ASM_PTE_ENTRY_SIZE, PTE_ENTRY_SIZE);
271
DEFINE(ASM_PFN_PTE_SHIFT, PFN_PTE_SHIFT);
272
DEFINE(ASM_PT_INITIAL, PT_INITIAL);
273
BLANK();
274
/* HUGEPAGE_SIZE is only used in vmlinux.lds.S to align kernel text
275
* and kernel data on physical huge pages */
276
#ifdef CONFIG_HUGETLB_PAGE
277
DEFINE(HUGEPAGE_SIZE, 1UL << REAL_HPAGE_SHIFT);
278
#elif !defined(CONFIG_64BIT)
279
DEFINE(HUGEPAGE_SIZE, 4*1024*1024);
280
#else
281
DEFINE(HUGEPAGE_SIZE, PAGE_SIZE);
282
#endif
283
BLANK();
284
DEFINE(ASM_PDC_RESULT_SIZE, NUM_PDC_RESULT * sizeof(unsigned long));
285
BLANK();
286
return 0;
287
}
288
289