*** empty log message ***
[arla.git] / rxdef / ubik.xg
blob5e58b976bfbf947b9decc3ac1a7c2919c6b4f1ad
1 /* -*- C -*- */
3 /*
4  * Copyright (c) 1998 - 2002 Kungliga Tekniska Högskolan
5  * (Royal Institute of Technology, Stockholm, Sweden).
6  * All rights reserved.
7  * 
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 
19  * 3. Neither the name of the Institute nor the names of its contributors
20  *    may be used to endorse or promote products derived from this software
21  *    without specific prior written permission.
22  * 
23  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33  * SUCH DAMAGE.
34  */
38  * $Id$
39  */
41 package Ubik_
43 %#include <fs_errors.h>
45 error-function conv_to_arla_errno
48  * Interface
49  */
51 struct net_tid {
52     long epoch;
53     long counter;
56 const UBIK_MAX_INTERFACE_ADDR = 256; /* max interfaces per server */
58 typedef net_tid net_version;
60 struct ubik_debug {
61         long now;
62         long lastYesTime;
63         long lastYesHost;
64         long lastYesState;
65         long lastYesClaim;
66         long lowestHost;
67         long lowestTime;
68         long syncHost;
69         long syncTime;
70         net_version syncVersion;
71         net_tid syncTid;
72         long amSyncSite;
73         long syncSiteUntil;
74         long nServers;
75         long lockedPages;
76         long writeLockedPages;
77         net_version localVersion;
78         long activeWrite;
79         long tidCounter;
80         long anyReadLocks;
81         long anyWriteLocks;
82         long recoveryState;
83         long currentTrans;
84         long writeTrans;
85         long epochTime;
88 struct ubik_sdebug {
89         long addr;
90         long lastVoteTime;
91         long lastBeaconSent;
92         long lastVote;
93         net_version remoteVersion;
94         long currentDB;
95         long beaconSinceDown;
96         long up;
97         afs_int32 altAddr[255];                         /*alternate addresses:host byte */
98                                                         /*this is actually UBIK_MAX_INTERFACE_ADDR-1*/
103 /* Opcodes */
105 const VOTE_BEACON       = 10000;
106 const VOTE_DEBUG        = 10001;
107 const VOTE_SDEBUG       = 10002;
108 const VOTE_GETSYNCSITE  = 10003;
110 /* Error codes */
112 const UNOQUORUM         = 5376;
113 const UNOTSYNC          = 5377;
114 const UNHOSTS           = 5378;
115 const UIOERROR          = 5379;
116 const UINTERNAL         = 5380;
117 const USYNC             = 5381;
118 const UNOENT            = 5382;
119 const UBADLOCK          = 5383;
120 const UBADLOG           = 5384;
121 const UBADHOST          = 5385;
122 const UBADTYPE          = 5386;
123 const UTWOENDS          = 5387;
124 const UDONE             = 5388;
125 const UNOSERVERS        = 5389;
126 const UEOF              = 5390;
127 const ULOGIO            = 5391;
128 const UBADFAM           = 5392;
129 const UBADCELL          = 5393;
130 const UBADSECGRP        = 5394;
131 const UBADGROUP         = 5395;
132 const UBADUUID          = 5396;
133 const UNOMEM            = 5397;
134 const UNOTMEMBER        = 5398;
135 const UNBINDINGS        = 5399;
136 const UBADPRINNAME      = 5400;
137 const UPIPE             = 5401;
138 const UDEADLOCK         = 5402;
139 const UEXCEPTION        = 5403;
140 const UTPQFAIL          = 5404;
141 const USKEWED           = 5405;
142 const UNOLOCK           = 5406;
143 const UNOACCESS         = 5407;
144 const UNOSPC            = 5408;
145 const UBADPATH          = 5409;
146 const UBADF             = 5410;
147 const UREINITIALIZE     = 5411;
149 /* The rpc calls */
151 Beacon (IN long state, 
152         IN long voteStart, 
153         IN net_version *Version, 
154         IN net_tid *tid) multi = VOTE_BEACON;
156 Debug (OUT ubik_debug *db) = VOTE_DEBUG;
158 SDebug (IN long which, OUT ubik_sdebug *db) = VOTE_SDEBUG;
160 GetSyncSite (OUT long *site) = VOTE_GETSYNCSITE;