linux-afs-translator-xen-20060731
[openafs.git] / src / sys / rmtsys.xg
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 package RMTSYS_
11 statindex 10
12 prefix  S
13 const RMTSYS_MAXPATHLEN = 4096;
14 #define MAXPATHLEN 4096
15
16 %#include <rx/rx.h>
17 %#include <rx/rx_null.h>
18
19 %#define RMTSYS_SERVICEID               4       /* shared between client+server */
20
21 /* The following defines really belong to "afs/cellconfig.h" (and are there) but there is a deadlock dependency situation among the sys and auth packages: auth depends on libsys.a (in sys) and sys depends on cellconfig.h (in auth). To avoid creating a third package we define the needed macros below. Make sure to change them whenever they're changed in "afs/cellconfig.h"... */
22 %#define        AFSCONF_RMTSYSPORT              7009
23 %#define        AFSCONF_RMTSYSSERVICE   "afsrmtsys"
24 %#define        NIL_PATHP                       "__FOO__"
25
26 /* The following struct contains the necessary client credentials that need to be passed along over the net. Group0+group1 implement a 32-bit pag number */
27 struct clientcred {
28         afs_int32       uid;
29         afs_int32       group0;
30         afs_int32       group1;
31 };
32
33 const MAXBUFFERLEN = 16384;     /* limited due to kernel buffer restrictions */
34 typedef opaque rmtbulk<MAXBUFFERLEN>;
35
36 SetPag( IN      clientcred *cred,
37         OUT     afs_int32 *newpag,
38                 afs_int32 *errornumber) = 1;
39
40 Pioctl( IN      clientcred *cred,
41                 string path<MAXPATHLEN>, 
42                 afs_int32 cmd, 
43                 afs_int32 follow, 
44                 rmtbulk *InData, 
45         INOUT   rmtbulk *OutData,
46         OUT     afs_int32 *errornumber) = 2;
47