SMproto.h revision 126a8a12
1126a8a12Smrg/* $Xorg: SMproto.h,v 1.5 2001/02/09 02:03:30 xorgcvs Exp $ */
2126a8a12Smrg
3126a8a12Smrg/*
4126a8a12Smrg
5126a8a12SmrgCopyright 1993, 1998  The Open Group
6126a8a12Smrg
7126a8a12SmrgPermission to use, copy, modify, distribute, and sell this software and its
8126a8a12Smrgdocumentation for any purpose is hereby granted without fee, provided that
9126a8a12Smrgthe above copyright notice appear in all copies and that both that
10126a8a12Smrgcopyright notice and this permission notice appear in supporting
11126a8a12Smrgdocumentation.
12126a8a12Smrg
13126a8a12SmrgThe above copyright notice and this permission notice shall be included in
14126a8a12Smrgall copies or substantial portions of the Software.
15126a8a12Smrg
16126a8a12SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17126a8a12SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18126a8a12SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
19126a8a12SmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
20126a8a12SmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21126a8a12SmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22126a8a12Smrg
23126a8a12SmrgExcept as contained in this notice, the name of The Open Group shall not be
24126a8a12Smrgused in advertising or otherwise to promote the sale, use or other dealings
25126a8a12Smrgin this Software without prior written authorization from The Open Group.
26126a8a12Smrg
27126a8a12Smrg*/
28126a8a12Smrg
29126a8a12Smrg/*
30126a8a12Smrg * Author: Ralph Mor, X Consortium
31126a8a12Smrg */
32126a8a12Smrg
33126a8a12Smrg#ifndef _SMPROTO_H_
34126a8a12Smrg#define _SMPROTO_H_
35126a8a12Smrg
36126a8a12Smrg#include <X11/Xmd.h>
37126a8a12Smrg
38126a8a12Smrgtypedef struct {
39126a8a12Smrg    CARD8	majorOpcode;
40126a8a12Smrg    CARD8	minorOpcode;
41126a8a12Smrg    CARD8	unused[2];
42126a8a12Smrg    CARD32	length B32;
43126a8a12Smrg    /* n	ARRAY8		previousId */
44126a8a12Smrg} smRegisterClientMsg;
45126a8a12Smrg
46126a8a12Smrgtypedef struct {
47126a8a12Smrg    CARD8	majorOpcode;
48126a8a12Smrg    CARD8	minorOpcode;
49126a8a12Smrg    CARD8	unused[2];
50126a8a12Smrg    CARD32	length B32;
51126a8a12Smrg    /* n	ARRAY8		clientId */
52126a8a12Smrg} smRegisterClientReplyMsg;
53126a8a12Smrg
54126a8a12Smrgtypedef struct {
55126a8a12Smrg    CARD8	majorOpcode;
56126a8a12Smrg    CARD8	minorOpcode;
57126a8a12Smrg    CARD8	unused1[2];
58126a8a12Smrg    CARD32	length B32;
59126a8a12Smrg    CARD8	saveType;
60126a8a12Smrg    CARD8	shutdown;
61126a8a12Smrg    CARD8	interactStyle;
62126a8a12Smrg    CARD8	fast;
63126a8a12Smrg    CARD8	unused2[4];
64126a8a12Smrg} smSaveYourselfMsg;
65126a8a12Smrg
66126a8a12Smrgtypedef struct {
67126a8a12Smrg    CARD8	majorOpcode;
68126a8a12Smrg    CARD8	minorOpcode;
69126a8a12Smrg    CARD8	unused1[2];
70126a8a12Smrg    CARD32	length B32;
71126a8a12Smrg    CARD8	saveType;
72126a8a12Smrg    CARD8	shutdown;
73126a8a12Smrg    CARD8	interactStyle;
74126a8a12Smrg    CARD8	fast;
75126a8a12Smrg    CARD8	global;
76126a8a12Smrg    CARD8	unused2[3];
77126a8a12Smrg} smSaveYourselfRequestMsg;
78126a8a12Smrg
79126a8a12Smrgtypedef struct {
80126a8a12Smrg    CARD8	majorOpcode;
81126a8a12Smrg    CARD8	minorOpcode;
82126a8a12Smrg    CARD8	dialogType;
83126a8a12Smrg    CARD8	unused;
84126a8a12Smrg    CARD32	length B32;
85126a8a12Smrg} smInteractRequestMsg;
86126a8a12Smrg
87126a8a12Smrgtypedef struct {
88126a8a12Smrg    CARD8	majorOpcode;
89126a8a12Smrg    CARD8	minorOpcode;
90126a8a12Smrg    CARD8	unused[2];
91126a8a12Smrg    CARD32	length B32;
92126a8a12Smrg} smInteractMsg;
93126a8a12Smrg
94126a8a12Smrgtypedef struct {
95126a8a12Smrg    CARD8	majorOpcode;
96126a8a12Smrg    CARD8	minorOpcode;
97126a8a12Smrg    CARD8	cancelShutdown;
98126a8a12Smrg    CARD8	unused;
99126a8a12Smrg    CARD32	length B32;
100126a8a12Smrg} smInteractDoneMsg;
101126a8a12Smrg
102126a8a12Smrgtypedef struct {
103126a8a12Smrg    CARD8	majorOpcode;
104126a8a12Smrg    CARD8	minorOpcode;
105126a8a12Smrg    CARD8       success;
106126a8a12Smrg    CARD8	unused;
107126a8a12Smrg    CARD32	length B32;
108126a8a12Smrg} smSaveYourselfDoneMsg;
109126a8a12Smrg
110126a8a12Smrgtypedef struct {
111126a8a12Smrg    CARD8	majorOpcode;
112126a8a12Smrg    CARD8	minorOpcode;
113126a8a12Smrg    CARD8	unused[2];
114126a8a12Smrg    CARD32	length B32;
115126a8a12Smrg} smDieMsg;
116126a8a12Smrg
117126a8a12Smrgtypedef struct {
118126a8a12Smrg    CARD8	majorOpcode;
119126a8a12Smrg    CARD8	minorOpcode;
120126a8a12Smrg    CARD8	unused[2];
121126a8a12Smrg    CARD32	length B32;
122126a8a12Smrg} smShutdownCancelledMsg;
123126a8a12Smrg
124126a8a12Smrgtypedef struct {
125126a8a12Smrg    CARD8	majorOpcode;
126126a8a12Smrg    CARD8	minorOpcode;
127126a8a12Smrg    CARD8	unused[2];
128126a8a12Smrg    CARD32	length B32;
129126a8a12Smrg    /* b	LISTofARRAY8	reasons */
130126a8a12Smrg} smCloseConnectionMsg;
131126a8a12Smrg
132126a8a12Smrgtypedef struct {
133126a8a12Smrg    CARD8	majorOpcode;
134126a8a12Smrg    CARD8	minorOpcode;
135126a8a12Smrg    CARD8	unused[2];
136126a8a12Smrg    CARD32	length B32;
137126a8a12Smrg    /* a	LISTofPROPERTY	properties */
138126a8a12Smrg} smSetPropertiesMsg;
139126a8a12Smrg
140126a8a12Smrgtypedef struct {
141126a8a12Smrg    CARD8	majorOpcode;
142126a8a12Smrg    CARD8	minorOpcode;
143126a8a12Smrg    CARD8	unused[2];
144126a8a12Smrg    CARD32	length B32;
145126a8a12Smrg    /* a	LISTofARRAY8	property names */
146126a8a12Smrg} smDeletePropertiesMsg;
147126a8a12Smrg
148126a8a12Smrgtypedef struct {
149126a8a12Smrg    CARD8	majorOpcode;
150126a8a12Smrg    CARD8	minorOpcode;
151126a8a12Smrg    CARD8	unused[2];
152126a8a12Smrg    CARD32	length B32;
153126a8a12Smrg} smGetPropertiesMsg;
154126a8a12Smrg
155126a8a12Smrgtypedef struct {
156126a8a12Smrg    CARD8	majorOpcode;
157126a8a12Smrg    CARD8	minorOpcode;
158126a8a12Smrg    CARD8	unused[2];
159126a8a12Smrg    CARD32	length B32;
160126a8a12Smrg    /* a	LISTofPROPERTY	properties */
161126a8a12Smrg} smPropertiesReplyMsg;
162126a8a12Smrg
163126a8a12Smrgtypedef struct {
164126a8a12Smrg    CARD8	majorOpcode;
165126a8a12Smrg    CARD8	minorOpcode;
166126a8a12Smrg    CARD8	unused[2];
167126a8a12Smrg    CARD32	length B32;
168126a8a12Smrg} smSaveYourselfPhase2RequestMsg;
169126a8a12Smrg
170126a8a12Smrgtypedef struct {
171126a8a12Smrg    CARD8	majorOpcode;
172126a8a12Smrg    CARD8	minorOpcode;
173126a8a12Smrg    CARD8	unused[2];
174126a8a12Smrg    CARD32	length B32;
175126a8a12Smrg} smSaveYourselfPhase2Msg;
176126a8a12Smrg
177126a8a12Smrgtypedef struct {
178126a8a12Smrg    CARD8	majorOpcode;
179126a8a12Smrg    CARD8	minorOpcode;
180126a8a12Smrg    CARD8	unused[2];
181126a8a12Smrg    CARD32	length B32;
182126a8a12Smrg} smSaveCompleteMsg;
183126a8a12Smrg
184126a8a12Smrg
185126a8a12Smrg/*
186126a8a12Smrg * SIZEOF values.  These better be multiples of 8.
187126a8a12Smrg */
188126a8a12Smrg
189126a8a12Smrg#define sz_smRegisterClientMsg 			8
190126a8a12Smrg#define sz_smRegisterClientReplyMsg 		8
191126a8a12Smrg#define sz_smSaveYourselfMsg 			16
192126a8a12Smrg#define sz_smSaveYourselfRequestMsg		16
193126a8a12Smrg#define sz_smInteractRequestMsg 		8
194126a8a12Smrg#define sz_smInteractMsg 			8
195126a8a12Smrg#define sz_smInteractDoneMsg 			8
196126a8a12Smrg#define sz_smSaveYourselfDoneMsg 		8
197126a8a12Smrg#define sz_smDieMsg 				8
198126a8a12Smrg#define sz_smShutdownCancelledMsg 		8
199126a8a12Smrg#define sz_smCloseConnectionMsg 		8
200126a8a12Smrg#define sz_smSetPropertiesMsg 			8
201126a8a12Smrg#define sz_smDeletePropertiesMsg 		8
202126a8a12Smrg#define sz_smGetPropertiesMsg 			8
203126a8a12Smrg#define sz_smPropertiesReplyMsg 		8
204126a8a12Smrg#define sz_smSaveYourselfPhase2RequestMsg	8
205126a8a12Smrg#define sz_smSaveYourselfPhase2Msg 		8
206126a8a12Smrg#define sz_smSaveCompleteMsg 			8
207126a8a12Smrg
208126a8a12Smrg#endif /* _SMPROTO_H_ */
209