1 martin 1.2 *//%LICENSE////////////////////////////////////////////////////////////////
2 *//
3 *// Licensed to The Open Group (TOG) under one or more contributor license
4 *// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 *// this work for additional information regarding copyright ownership.
6 *// Each contributor licenses this file to you under the OpenPegasus Open
7 *// Source License; you may not use this file except in compliance with the
8 *// License.
9 *//
10 *// Permission is hereby granted, free of charge, to any person obtaining a
11 *// copy of this software and associated documentation files (the "Software"),
12 *// to deal in the Software without restriction, including without limitation
13 *// the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 *// and/or sell copies of the Software, and to permit persons to whom the
15 *// Software is furnished to do so, subject to the following conditions:
16 *//
17 *// The above copyright notice and this permission notice shall be included
18 *// in all copies or substantial portions of the Software.
19 *//
20 *// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 *// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 martin 1.2 *// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 *// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 *// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 *// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 *// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 *//
28 *//////////////////////////////////////////////////////////////////////////
|
29 r.kieninger 1.1
30 ********************************************************************
31 * REGARM - register with ARM
32 *
33 * Function: The elment name and type are hard coded.
34 * TERMTYPE=ELEMTERM is used for only app ABENDS.
35 * All other input parameters are left at their defaults:
36 * ELEMTYPE=NO_ELEMTYPE
37 * EVENTEXIT=NO_EVENTEXIT
38 * EVENTEXITPL=NO_EVENTEXITPL
39 * PLISTVER=IMPLIED_VERSION
40 * RESTARTTIMEOUT=NORM
41 * STARTTXT=NO_STARTTXT
42 *
43 * USAGE FROM C:
44 * void register_arm (char * elemname,
45 * char * elemtype,
46 * /* must point to a local buffer which has a length */
47 * /* of least 128 bytes */
48 * char * buffer,
49 * int * retcode,
50 r.kieninger 1.1 * int * reasoncode)
51 *
52 ********************************************************************
53 REGARM CSECT
54 REGARM AMODE 64
55 REGARM RMODE 31 MUST RESIDE in 31-BIT MEMORY
56 *
57 EDCPRLG +
58 BASEREG=3, +
59 USRDSAL=AUTOSPACE1
60 *
61 *
62 USING AUTOSPACE,13
63 * make C-auto-storage accessable using DSECT and register 13
64 L R4,0(0,R1) get element name address into R4
65 L R7,4(0,R1) GET buffer PTR into R7
66 L R5,8(0,R1) GET pointer to retcode variable
67 L R6,12(0,R1) GET pointer to reascode variable
68 MVC 0(IXC1FL,R7),IXC1ST COPY TEMPLATE LIST FORM MACRO
69 *
70 IXCARM REQUEST=REGISTER,ELEMENT=(R4), +
71 r.kieninger 1.1 ELEMTYPE=NO_ELEMTYPE, +
72 TERMTYPE=ELEMTERM, +
73 RETCODE=0(0,R5), +
74 RSNCODE=0(0,R6), +
75 MF=(E,(R7))
76 EDCEPIL
77 *
78 *
79 * use the LIST from of the IXCARM macro to generate a parameter
80 * block here
81 AUTOSPACE EDCDSAD
82 IXC1ST IXCARM MF=(L,IXCARML)
83 IXC1FE DS 0H
84 IXC1FL EQU IXC1FE-IXC1ST
85 AUTOSPACE1 EQU *-AUTOSPACE
86 *
87 ********************************************************************
88 * READYARM - set element to READY state with ARM
89 *
90 * USAGE FROM C:
91 * void ready_arm (
92 r.kieninger 1.1 * /* must point to a local buffer which has a length */
93 * /* of least 128 bytes */
94 * char * buffer,
95 * int * retcode, int * reasoncode)
96 *
97 ********************************************************************
98 READYARM CSECT
99 READYARM AMODE 31
100 READYARM RMODE ANY
101 *
102 EDCPRLG +
103 BASEREG=3, +
104 USRDSAL=AUTOSPACE2
105 *
106 *
107 USING AUTOSPACE,13
108 * make C-auto-storage accessable using DSECT and register 13
109 L R7,0(0,R1) GET buffer PTR into R7
110 L R5,4(0,R1) GET pointer to retcode variable
111 L R6,8(0,R1) GET pointer to reascode variable
112 MVC 0(IXC2FL,R7),IXC2ST COPY TEMPLATE LIST FORM MACRO
113 r.kieninger 1.1 *
114 IXCARM REQUEST=READY, +
115 RETCODE=0(0,R5), +
116 RSNCODE=0(0,R6), +
117 MF=(E,(R7))
118 *
119 *
120 EDCEPIL
121 *
122 *
123 AUTOSPACE EDCDSAD
124 IXC2ST IXCARM MF=(L,IXCARM2)
125 IXC2FE DS 0H
126 IXC2FL EQU IXC2FE-IXC2ST
127 AUTOSPACE2 EQU *-AUTOSPACE
128 *
129 ********************************************************************
130 * DEREGARM - deregister element from ARM
131 * should be called at program termination
132 * USAGE FROM C:
133 * void deregister_arm (
134 r.kieninger 1.1 * /* must point to a local buffer which has a length */
135 * /* of least 128 bytes */
136 * char * buffer,
137 * int * retcode, int * reasoncode)
138 *
139 ********************************************************************
140 DEREGARM CSECT
141 DEREGARM AMODE 31
142 DEREGARM RMODE ANY
143 *
144 EDCPRLG +
145 BASEREG=3, +
146 USRDSAL=AUTOSPACE3
147 *
148 *
149 USING AUTOSPACE,13
150 * make C-auto-storage accessable using DSECT and register 13
151 L R7,0(0,R1) GET buffer PTR into R7
152 L R5,4(0,R1) GET pointer to retcode variable
153 L R6,8(0,R1) GET pointer to reascode variable
154 MVC 0(IXC3FL,R7),IXC3ST COPY TEMPLATE LIST FORM MACRO
155 r.kieninger 1.1 *
156 IXCARM REQUEST=DEREGISTER, +
157 RETCODE=0(0,R5), +
158 RSNCODE=0(0,R6), +
159 MF=(E,(R7))
160 *
161 EDCEPIL
162 *
163 *
164 AUTOSPACE EDCDSAD
165 IXC3ST IXCARM MF=(L,IXCARM3)
166 IXC3FE DS 0H
167 IXC3FL EQU IXC3FE-IXC3ST
168 AUTOSPACE3 EQU *-AUTOSPACE
169 *
170 *
171 R0 EQU 0
172 R1 EQU 1
173 R2 EQU 2
174 R3 EQU 3
175 R4 EQU 4
176 r.kieninger 1.1 R5 EQU 5
177 R6 EQU 6
178 R7 EQU 7
179 R8 EQU 8
180 R9 EQU 9
181 R10 EQU 10
182 R11 EQU 11
183 R12 EQU 12
184 R13 EQU 13
185 R14 EQU 14
186 R15 EQU 15
187 *
|