xref: /onnv-gate/usr/src/cmd/dcs/sparc/sun4u/remote_cfg.h (revision 0:68f95e015346)
1*0Sstevel@tonic-gate /*
2*0Sstevel@tonic-gate  * CDDL HEADER START
3*0Sstevel@tonic-gate  *
4*0Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*0Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*0Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*0Sstevel@tonic-gate  * with the License.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*0Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*0Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*0Sstevel@tonic-gate  * and limitations under the License.
13*0Sstevel@tonic-gate  *
14*0Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*0Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*0Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*0Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*0Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*0Sstevel@tonic-gate  *
20*0Sstevel@tonic-gate  * CDDL HEADER END
21*0Sstevel@tonic-gate  */
22*0Sstevel@tonic-gate /*
23*0Sstevel@tonic-gate  * Copyright (c) 2000 by Sun Microsystems, Inc.
24*0Sstevel@tonic-gate  * All rights reserved.
25*0Sstevel@tonic-gate  */
26*0Sstevel@tonic-gate 
27*0Sstevel@tonic-gate #ifndef _REMOTE_CFG_H
28*0Sstevel@tonic-gate #define	_REMOTE_CFG_H
29*0Sstevel@tonic-gate 
30*0Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*0Sstevel@tonic-gate 
32*0Sstevel@tonic-gate /*
33*0Sstevel@tonic-gate  * WARNING: The contents of this file are shared by all projects
34*0Sstevel@tonic-gate  * that  wish to  perform  remote  Dynamic Reconfiguration  (DR)
35*0Sstevel@tonic-gate  * operations. Copies of this file can be found in the following
36*0Sstevel@tonic-gate  * locations:
37*0Sstevel@tonic-gate  *
38*0Sstevel@tonic-gate  *	Project	    Location
39*0Sstevel@tonic-gate  *	-------	    --------
40*0Sstevel@tonic-gate  *	Solaris	    usr/src/cmd/dcs/sparc/sun4u/%M%
41*0Sstevel@tonic-gate  *	SMS	    src/sms/lib/librdr/%M%
42*0Sstevel@tonic-gate  *
43*0Sstevel@tonic-gate  * In order for proper communication to occur,  the files in the
44*0Sstevel@tonic-gate  * above locations must match exactly. Any changes that are made
45*0Sstevel@tonic-gate  * to this file should  be made to all of the files in the list.
46*0Sstevel@tonic-gate  */
47*0Sstevel@tonic-gate 
48*0Sstevel@tonic-gate /*
49*0Sstevel@tonic-gate  * This file contains definitions for a transport layer interface socket
50*0Sstevel@tonic-gate  * interface between a domain configuration server (DCS) and a domain
51*0Sstevel@tonic-gate  * configuration agent (DCA). The domain configuration server resides
52*0Sstevel@tonic-gate  * within Solaris on a domain. The domain configuration agent resides on
53*0Sstevel@tonic-gate  * the system controller.
54*0Sstevel@tonic-gate  */
55*0Sstevel@tonic-gate 
56*0Sstevel@tonic-gate #ifdef __cplusplus
57*0Sstevel@tonic-gate extern "C" {
58*0Sstevel@tonic-gate #endif
59*0Sstevel@tonic-gate 
60*0Sstevel@tonic-gate 
61*0Sstevel@tonic-gate /*
62*0Sstevel@tonic-gate  * The data_type field indicates whether the message is REQUEST
63*0Sstevel@tonic-gate  * or REPLY.
64*0Sstevel@tonic-gate  */
65*0Sstevel@tonic-gate typedef enum {
66*0Sstevel@tonic-gate 	RDR_REQUEST = 1,
67*0Sstevel@tonic-gate 	RDR_REPLY
68*0Sstevel@tonic-gate } rdr_msg_data_type_t;
69*0Sstevel@tonic-gate 
70*0Sstevel@tonic-gate 
71*0Sstevel@tonic-gate /*
72*0Sstevel@tonic-gate  * The error_msg_ctl field indicates whether error messages
73*0Sstevel@tonic-gate  * should be generated or not. See the errstring argument in
74*0Sstevel@tonic-gate  * the config_admin(3CFGADM) man page.
75*0Sstevel@tonic-gate  */
76*0Sstevel@tonic-gate typedef enum {
77*0Sstevel@tonic-gate 	RDR_GENERATE_ERR_MSGS = 1,
78*0Sstevel@tonic-gate 	RDR_DONT_GENERATE_ERR_MSGS
79*0Sstevel@tonic-gate } rdr_error_msg_ctl_t;
80*0Sstevel@tonic-gate 
81*0Sstevel@tonic-gate 
82*0Sstevel@tonic-gate /*
83*0Sstevel@tonic-gate  * The list_msg_ctl field indicates whether a list should
84*0Sstevel@tonic-gate  * be generated for all attachment points in the device tree or
85*0Sstevel@tonic-gate  * only those attachment points specified in the message. See
86*0Sstevel@tonic-gate  * the comment on the first two arguments for config_list_ext
87*0Sstevel@tonic-gate  * in the config_admin(3CFGADM) man page.
88*0Sstevel@tonic-gate  */
89*0Sstevel@tonic-gate typedef enum {
90*0Sstevel@tonic-gate 	RDR_LIST_ONLY_PARAM_APS = 1,
91*0Sstevel@tonic-gate 	RDR_LIST_ALL_APS
92*0Sstevel@tonic-gate } rdr_list_msg_control_t;
93*0Sstevel@tonic-gate 
94*0Sstevel@tonic-gate 
95*0Sstevel@tonic-gate /*
96*0Sstevel@tonic-gate  * The permissions field indicates if the list_ext command should
97*0Sstevel@tonic-gate  * filter out attachment points that the remote user doesn't have
98*0Sstevel@tonic-gate  * sufficient access permissions to view.
99*0Sstevel@tonic-gate  */
100*0Sstevel@tonic-gate typedef enum {
101*0Sstevel@tonic-gate 	RDR_NOT_PRIVILEGED = 0,
102*0Sstevel@tonic-gate 	RDR_PRIVILEGED
103*0Sstevel@tonic-gate } rdr_list_permission_control_t;
104*0Sstevel@tonic-gate 
105*0Sstevel@tonic-gate 
106*0Sstevel@tonic-gate /*
107*0Sstevel@tonic-gate  * The message_opcode value of the message indicates the purpose
108*0Sstevel@tonic-gate  * of the request. The defined values for message_opcode are:
109*0Sstevel@tonic-gate  */
110*0Sstevel@tonic-gate typedef enum {
111*0Sstevel@tonic-gate 	RDR_SES_REQ = 1,	   /* Session open.			   */
112*0Sstevel@tonic-gate 	RDR_SES_ESTBL,		   /* Session Establishment.		   */
113*0Sstevel@tonic-gate 	RDR_SES_END,		   /* Session end.			   */
114*0Sstevel@tonic-gate 	RDR_CONF_CHANGE_STATE,	   /* Change state of an attachment point. */
115*0Sstevel@tonic-gate 	RDR_CONF_PRIVATE_FUNC,	   /* Invoke h/w specific func.		   */
116*0Sstevel@tonic-gate 	RDR_CONF_TEST,		   /* Test the system board.		   */
117*0Sstevel@tonic-gate 	RDR_CONF_LIST_EXT,	   /* Listing interface.		   */
118*0Sstevel@tonic-gate 	RDR_CONF_HELP,		   /* Request output of localized help msg */
119*0Sstevel@tonic-gate 	RDR_CONF_AP_ID_CMP,	   /* Compare two attachment point ids.	   */
120*0Sstevel@tonic-gate 	RDR_CONF_ABORT_CMD,	   /* Abort the current config command.	   */
121*0Sstevel@tonic-gate 	RDR_CONF_CONFIRM_CALLBACK, /* Confirm call-back.		   */
122*0Sstevel@tonic-gate 	RDR_CONF_MSG_CALLBACK,	   /* Message call-back.		   */
123*0Sstevel@tonic-gate 	RDR_RSRC_INFO,		   /* System board resource info.	   */
124*0Sstevel@tonic-gate 	RDR_NUM_OPS
125*0Sstevel@tonic-gate } rdr_msg_opcode_t;
126*0Sstevel@tonic-gate 
127*0Sstevel@tonic-gate 
128*0Sstevel@tonic-gate /*
129*0Sstevel@tonic-gate  * The status is valid only if the data_type is REPLY. The possible
130*0Sstevel@tonic-gate  * values for status are, FAILED or SUCCESS.
131*0Sstevel@tonic-gate  */
132*0Sstevel@tonic-gate typedef enum {
133*0Sstevel@tonic-gate 	RDR_SUCCESS = 0,
134*0Sstevel@tonic-gate 	RDR_FAILED
135*0Sstevel@tonic-gate } dr_msg_status_t;
136*0Sstevel@tonic-gate 
137*0Sstevel@tonic-gate 
138*0Sstevel@tonic-gate /*
139*0Sstevel@tonic-gate  * The following typedefs define message formats for use in the
140*0Sstevel@tonic-gate  * rdr_msg_type_t union. The rdr_msg_type_t union contains the
141*0Sstevel@tonic-gate  * majority of the information in the messages sent between the
142*0Sstevel@tonic-gate  * DCS and DCA.
143*0Sstevel@tonic-gate  *
144*0Sstevel@tonic-gate  * Some types require variable length data to follow the fixed
145*0Sstevel@tonic-gate  * length information in the struct. If this is required, a
146*0Sstevel@tonic-gate  * comment is placed at the end of the struct that shows the
147*0Sstevel@tonic-gate  * contents of that information along with the required number
148*0Sstevel@tonic-gate  * of bytes.
149*0Sstevel@tonic-gate  *
150*0Sstevel@tonic-gate  * All *_size fields are the length of the string + 1 to account
151*0Sstevel@tonic-gate  * for NULL termination.
152*0Sstevel@tonic-gate  */
153*0Sstevel@tonic-gate 
154*0Sstevel@tonic-gate 
155*0Sstevel@tonic-gate typedef struct {
156*0Sstevel@tonic-gate 	unsigned int		locale_size;
157*0Sstevel@tonic-gate 	/* locale string (locale_size bytes)	 */
158*0Sstevel@tonic-gate } rdr_ses_req_t;
159*0Sstevel@tonic-gate 
160*0Sstevel@tonic-gate 
161*0Sstevel@tonic-gate typedef struct {
162*0Sstevel@tonic-gate 	unsigned long		session_id;
163*0Sstevel@tonic-gate } rdr_ses_req_reply_t;
164*0Sstevel@tonic-gate 
165*0Sstevel@tonic-gate 
166*0Sstevel@tonic-gate typedef struct {
167*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
168*0Sstevel@tonic-gate 	unsigned int		ap_id_char_size;
169*0Sstevel@tonic-gate 	unsigned int		options_size;
170*0Sstevel@tonic-gate 	unsigned long		confirm_callback_id;
171*0Sstevel@tonic-gate 	unsigned long		confirm_appdata_ptr;
172*0Sstevel@tonic-gate 	unsigned long		msg_callback_id;
173*0Sstevel@tonic-gate 	unsigned long		msg_appdata_ptr;
174*0Sstevel@tonic-gate 	unsigned long		flags;
175*0Sstevel@tonic-gate 	unsigned long		timeval;
176*0Sstevel@tonic-gate 	unsigned short 		state_change_cmd;
177*0Sstevel@tonic-gate 	unsigned short		error_msg_ctl;
178*0Sstevel@tonic-gate 	char			retries;
179*0Sstevel@tonic-gate 	char			pad_byte1;
180*0Sstevel@tonic-gate 	/* ap id strings (ap_id_char_size bytes) */
181*0Sstevel@tonic-gate 	/* option string (options_size bytes)	 */
182*0Sstevel@tonic-gate } rdr_change_state_t;
183*0Sstevel@tonic-gate 
184*0Sstevel@tonic-gate 
185*0Sstevel@tonic-gate typedef struct {
186*0Sstevel@tonic-gate 	unsigned int		errstring_size;
187*0Sstevel@tonic-gate 	/* error string (errstring_size bytes)	 */
188*0Sstevel@tonic-gate } rdr_change_state_reply_t;
189*0Sstevel@tonic-gate 
190*0Sstevel@tonic-gate 
191*0Sstevel@tonic-gate typedef struct {
192*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
193*0Sstevel@tonic-gate 	unsigned int		ap_id_char_size;
194*0Sstevel@tonic-gate 	unsigned int		options_size;
195*0Sstevel@tonic-gate 	unsigned int		function_size;
196*0Sstevel@tonic-gate 	unsigned long		confirm_callback_id;
197*0Sstevel@tonic-gate 	unsigned long		confirm_appdata_ptr;
198*0Sstevel@tonic-gate 	unsigned long		msg_callback_id;
199*0Sstevel@tonic-gate 	unsigned long		msg_appdata_ptr;
200*0Sstevel@tonic-gate 	unsigned long		flags;
201*0Sstevel@tonic-gate 	unsigned short		error_msg_ctl;
202*0Sstevel@tonic-gate 	char			pad_byte1;
203*0Sstevel@tonic-gate 	char			pad_byte2;
204*0Sstevel@tonic-gate 	/* ap id strings (ap_id_char_size bytes) */
205*0Sstevel@tonic-gate 	/* option string (options_size bytes)	 */
206*0Sstevel@tonic-gate 	/* function string (function_size bytes) */
207*0Sstevel@tonic-gate } rdr_private_func_t;
208*0Sstevel@tonic-gate 
209*0Sstevel@tonic-gate 
210*0Sstevel@tonic-gate typedef struct {
211*0Sstevel@tonic-gate 	unsigned int		errstring_size;
212*0Sstevel@tonic-gate 	/* error string (errstring_size bytes)	 */
213*0Sstevel@tonic-gate } rdr_private_func_reply_t;
214*0Sstevel@tonic-gate 
215*0Sstevel@tonic-gate 
216*0Sstevel@tonic-gate typedef struct {
217*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
218*0Sstevel@tonic-gate 	unsigned int		ap_id_char_size;
219*0Sstevel@tonic-gate 	unsigned int		options_size;
220*0Sstevel@tonic-gate 	unsigned long		msg_callback_id;
221*0Sstevel@tonic-gate 	unsigned long		msg_appdata_ptr;
222*0Sstevel@tonic-gate 	unsigned long		flags;
223*0Sstevel@tonic-gate 	unsigned short		error_msg_ctl;
224*0Sstevel@tonic-gate 	char			pad_byte1;
225*0Sstevel@tonic-gate 	char			pad_byte2;
226*0Sstevel@tonic-gate 	/* ap id strings (ap_id_char_size bytes) */
227*0Sstevel@tonic-gate 	/* option string (options_size bytes)	 */
228*0Sstevel@tonic-gate } rdr_test_t;
229*0Sstevel@tonic-gate 
230*0Sstevel@tonic-gate 
231*0Sstevel@tonic-gate typedef struct {
232*0Sstevel@tonic-gate 	unsigned int		errstring_size;
233*0Sstevel@tonic-gate 	/* error string (errstring_size bytes)	 */
234*0Sstevel@tonic-gate } rdr_test_reply_t;
235*0Sstevel@tonic-gate 
236*0Sstevel@tonic-gate 
237*0Sstevel@tonic-gate typedef struct {
238*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
239*0Sstevel@tonic-gate 	unsigned int		ap_id_char_size;
240*0Sstevel@tonic-gate 	unsigned int		options_size;
241*0Sstevel@tonic-gate 	unsigned int		listopts_size;
242*0Sstevel@tonic-gate 	unsigned short		error_msg_ctl;
243*0Sstevel@tonic-gate 	unsigned short		list_msg_ctl;
244*0Sstevel@tonic-gate 	unsigned long		flags;
245*0Sstevel@tonic-gate 	unsigned int		permissions;
246*0Sstevel@tonic-gate 	/* ap id strings (ap_id_char_size bytes) */
247*0Sstevel@tonic-gate 	/* option string (options_size bytes)	 */
248*0Sstevel@tonic-gate 	/* list opt string (listopts_size bytes) */
249*0Sstevel@tonic-gate } rdr_list_ext_t;
250*0Sstevel@tonic-gate 
251*0Sstevel@tonic-gate 
252*0Sstevel@tonic-gate /*
253*0Sstevel@tonic-gate  * The num_ap_ids is the total number of ap_ids in the sequence of
254*0Sstevel@tonic-gate  * messages for the list_ext reply. The list data array is an
255*0Sstevel@tonic-gate  * array of cfga_list_data_t (see config_admin (3CFGA)) structs
256*0Sstevel@tonic-gate  * that has num_ap_ids elements.
257*0Sstevel@tonic-gate  */
258*0Sstevel@tonic-gate typedef struct {
259*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
260*0Sstevel@tonic-gate 	unsigned int		errstring_size;
261*0Sstevel@tonic-gate 	/* list data array (num_ap_ids elements) */
262*0Sstevel@tonic-gate 	/* error string (errstring_size bytes)	 */
263*0Sstevel@tonic-gate } rdr_list_ext_reply_t;
264*0Sstevel@tonic-gate 
265*0Sstevel@tonic-gate 
266*0Sstevel@tonic-gate typedef struct {
267*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
268*0Sstevel@tonic-gate 	unsigned int		ap_id_char_size;
269*0Sstevel@tonic-gate 	unsigned long 		msg_callback_id;
270*0Sstevel@tonic-gate 	unsigned long		msg_appdata_ptr;
271*0Sstevel@tonic-gate 	unsigned int		options_size;
272*0Sstevel@tonic-gate 	unsigned long 		flags;
273*0Sstevel@tonic-gate 	/* ap id strings (ap_id_char_size bytes) */
274*0Sstevel@tonic-gate 	/* option string (options_size bytes)	 */
275*0Sstevel@tonic-gate } rdr_help_t;
276*0Sstevel@tonic-gate 
277*0Sstevel@tonic-gate 
278*0Sstevel@tonic-gate typedef struct {
279*0Sstevel@tonic-gate 	unsigned int		ap_id1_size;
280*0Sstevel@tonic-gate 	unsigned int		ap_id2_size;
281*0Sstevel@tonic-gate 	/* ap id 1 string (ap_id1_size bytes)	 */
282*0Sstevel@tonic-gate 	/* ap id 2 string (ap_id1_size bytes)	 */
283*0Sstevel@tonic-gate } rdr_ap_id_cmp_t;
284*0Sstevel@tonic-gate 
285*0Sstevel@tonic-gate 
286*0Sstevel@tonic-gate typedef struct {
287*0Sstevel@tonic-gate 	unsigned long		session_id;
288*0Sstevel@tonic-gate } rdr_abort_cmd_t;
289*0Sstevel@tonic-gate 
290*0Sstevel@tonic-gate 
291*0Sstevel@tonic-gate typedef struct {
292*0Sstevel@tonic-gate 	unsigned long		confirm_callback_id;
293*0Sstevel@tonic-gate 	unsigned long		appdata_ptr;
294*0Sstevel@tonic-gate 	unsigned int		message_size;
295*0Sstevel@tonic-gate 	/* prompt message (message_size bytes)	 */
296*0Sstevel@tonic-gate } rdr_confirm_callback_t;
297*0Sstevel@tonic-gate 
298*0Sstevel@tonic-gate 
299*0Sstevel@tonic-gate typedef struct {
300*0Sstevel@tonic-gate 	unsigned long		confirm_callback_id;
301*0Sstevel@tonic-gate 	unsigned long		appdata_ptr;
302*0Sstevel@tonic-gate 	int			response;
303*0Sstevel@tonic-gate } rdr_confirm_callback_reply_t;
304*0Sstevel@tonic-gate 
305*0Sstevel@tonic-gate 
306*0Sstevel@tonic-gate typedef struct {
307*0Sstevel@tonic-gate 	unsigned long		msg_callback_id;
308*0Sstevel@tonic-gate 	unsigned long		appdata_ptr;
309*0Sstevel@tonic-gate 	unsigned int		message_size;
310*0Sstevel@tonic-gate 	/* user message (message_size bytes)	 */
311*0Sstevel@tonic-gate } rdr_msg_callback_t;
312*0Sstevel@tonic-gate 
313*0Sstevel@tonic-gate 
314*0Sstevel@tonic-gate typedef struct {
315*0Sstevel@tonic-gate 	unsigned int		num_ap_ids;
316*0Sstevel@tonic-gate 	unsigned int		ap_id_char_size;
317*0Sstevel@tonic-gate 	int			flags;
318*0Sstevel@tonic-gate 	/* ap id strings (ap_id_char_size bytes) */
319*0Sstevel@tonic-gate } rdr_rsrc_info_t;
320*0Sstevel@tonic-gate 
321*0Sstevel@tonic-gate 
322*0Sstevel@tonic-gate typedef struct {
323*0Sstevel@tonic-gate 	unsigned long		packed_hdl_size;
324*0Sstevel@tonic-gate 	/* rsrc info buf (packed_hdl_size bytes) */
325*0Sstevel@tonic-gate } rdr_rsrc_info_reply_t;
326*0Sstevel@tonic-gate 
327*0Sstevel@tonic-gate 
328*0Sstevel@tonic-gate typedef union {
329*0Sstevel@tonic-gate 	rdr_ses_req_t			ses_req;
330*0Sstevel@tonic-gate 	rdr_ses_req_reply_t		ses_req_reply;
331*0Sstevel@tonic-gate 	rdr_change_state_t 		change_state;
332*0Sstevel@tonic-gate 	rdr_change_state_reply_t 	change_state_reply;
333*0Sstevel@tonic-gate 	rdr_private_func_t 		private_func;
334*0Sstevel@tonic-gate 	rdr_private_func_reply_t	private_func_reply;
335*0Sstevel@tonic-gate 	rdr_test_t			test;
336*0Sstevel@tonic-gate 	rdr_test_reply_t		test_reply;
337*0Sstevel@tonic-gate 	rdr_list_ext_t			list_ext;
338*0Sstevel@tonic-gate 	rdr_list_ext_reply_t		list_ext_reply;
339*0Sstevel@tonic-gate 	rdr_help_t			help;
340*0Sstevel@tonic-gate 	rdr_ap_id_cmp_t			ap_id_cmp;
341*0Sstevel@tonic-gate 	rdr_abort_cmd_t			abort;
342*0Sstevel@tonic-gate 	rdr_confirm_callback_t		confirm_callback;
343*0Sstevel@tonic-gate 	rdr_confirm_callback_reply_t	confirm_callback_reply;
344*0Sstevel@tonic-gate 	rdr_msg_callback_t		msg_callback;
345*0Sstevel@tonic-gate 	rdr_rsrc_info_t			rsrc_info;
346*0Sstevel@tonic-gate 	rdr_rsrc_info_reply_t		rsrc_info_reply;
347*0Sstevel@tonic-gate } rdr_msg_type_t;
348*0Sstevel@tonic-gate 
349*0Sstevel@tonic-gate 
350*0Sstevel@tonic-gate /*
351*0Sstevel@tonic-gate  * The RDR message will contain the following members:
352*0Sstevel@tonic-gate  */
353*0Sstevel@tonic-gate typedef struct {
354*0Sstevel@tonic-gate 	unsigned long	data_length;
355*0Sstevel@tonic-gate 
356*0Sstevel@tonic-gate 	/* Message Op, Type, and Status */
357*0Sstevel@tonic-gate 	unsigned char	message_opcode;		/* rdr_msg_opcode_t 	*/
358*0Sstevel@tonic-gate 	unsigned char	data_type;		/* rdr_msg_data_type_t	*/
359*0Sstevel@tonic-gate 	char		pad_byte1;
360*0Sstevel@tonic-gate 	char		pad_byte2;
361*0Sstevel@tonic-gate 	unsigned long	status;			/* rdr_msg_status_t	*/
362*0Sstevel@tonic-gate 
363*0Sstevel@tonic-gate 	/* These are for security and version */
364*0Sstevel@tonic-gate 	unsigned long	random_req;
365*0Sstevel@tonic-gate 	unsigned long	random_resp;
366*0Sstevel@tonic-gate 
367*0Sstevel@tonic-gate 	unsigned short	major_version;
368*0Sstevel@tonic-gate 	unsigned short	minor_version;
369*0Sstevel@tonic-gate } rdr_msg_hdr_t;
370*0Sstevel@tonic-gate 
371*0Sstevel@tonic-gate 
372*0Sstevel@tonic-gate /*
373*0Sstevel@tonic-gate  * The RDR message body:
374*0Sstevel@tonic-gate  */
375*0Sstevel@tonic-gate typedef struct {
376*0Sstevel@tonic-gate 	rdr_msg_hdr_t 	app;
377*0Sstevel@tonic-gate 	rdr_msg_type_t	conf;
378*0Sstevel@tonic-gate } rdr_msg_t;
379*0Sstevel@tonic-gate 
380*0Sstevel@tonic-gate 
381*0Sstevel@tonic-gate #ifdef __cplusplus
382*0Sstevel@tonic-gate }
383*0Sstevel@tonic-gate #endif
384*0Sstevel@tonic-gate 
385*0Sstevel@tonic-gate #endif /* _REMOTE_CFG_H */
386