File: mp.h

package info (click to toggle)
p3nfs 5.3-1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 596 kB
  • ctags: 825
  • sloc: ansic: 7,434; makefile: 126; sh: 40
file content (186 lines) | stat: -rw-r--r-- 5,136 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#define PFS_OP_CREATE   0x01
#define PFS_OP_GETATTR  0x02
#define PFS_OP_MKDIR    0x03
#define PFS_OP_READ     0x04
#define PFS_OP_READDIR  0x05
#define PFS_OP_REMOVE   0x06
#define PFS_OP_RENAME   0x07
#define PFS_OP_RMDIR    0x08
#define PFS_OP_SETATTR  0x09
#define PFS_OP_WRITE    0x0a
#define PFS_OP_GETDEVS  0x0b
/* The same as getattr without the stat (for linkcount purposes */
#define PFS_OP_STATDEV  0x0c

/* Only for the new nfsc */
#define PFS_OP_TTYDATA  0x0d
#define PFS_OP_EXEC  	0x0e
#define PFS_OP_ECHO  	0x0f
#define PREFIX	0x80

typedef struct p_inode
{
  int inode;
  char *name;
  struct p_inode *nextnam, *nextnum;
} p_inode;

struct device
{
  char *name;
  unsigned char attrib[14];
  int total, free;
  struct device *next;
};

/* data cache */
struct dcache
{
  struct dcache *next;
  unsigned char *data;
  unsigned int offset, len;
  int towrite;
};

/* attribute cache */
struct cache
{
  struct cache *next;
  unsigned int inode;
  int actual_size;
  struct dcache *dcache;
  fattr attr;
};

struct entrycache
{
  int inode;
  entry *head;
  struct entrycache *next;
};

extern int psionfd, debug, gmtoffset, exiting, psion_alive, dowakeup,
           old_nfsc, masterfd, query_cache, background, series5;
extern fattr root_fattr;
extern char *disconnprog, *connprog;
extern struct cache *datacache, *attrcache;

#ifdef __SVR4
#define bzero(a,b) memset(a,0,b)
#define bcopy(a,b,c) memcpy(b,a,c)
#define bcmp(a,b,n) memcmp(a,b,n)
#define index strchr
#define rindex strrchr
#endif

#if !defined(__STDC__)
extern char *index(), *rindex(), *strdup();
#endif


#define THE_END        (struct entry *)-1
#define PBUFSIZE       8192

#define TIMEOUT       -54
#define BLOCKSIZE      1024
#define FID            7 /* File system id */

#if defined(sun) && defined(__SVR4)
/* 
 * at least /opt/SUNWspro/bin/cc on Solaris 2.4 likes these:
 */
# define SIGARG (int arg)
#else
# define SIGARG ()
#endif

#if defined(sun) && defined(__STDC__) && !defined(__SVR4)
# include "sun_stdlib.h"
# define __P(a) a
#endif

#ifndef __P
#  if defined(__STDC__)
#    define __P(a) a
#  else
#    define __P(a) ()
#  endif
#endif


/* mp_main.c */
#if defined(hpux) || defined(__SVR4)
	/* HPUX 10.20 declares int usleep( useconds_t useconds); */
#  ifndef HPUX10
     extern void usleep __P((int usec));
#  endif
#endif

/* mp_serial.c */
int init_serial __P((char *dev, int speed));
int fd_is_still_alive __P((int fd, int wake));
void reset_serial __P((int fd));

/* crc.c */
int docrc16 __P((unsigned char *, int));

/* mp_mount.c */
void mount_and_run __P((char *dir, char *dev, void (*proc)(), nfs_fh *root_fh));

/* mp_inode.c */
extern p_inode *get_num __P((int));
extern p_inode *get_nam __P((char *));
extern p_inode *re_nam __P((char *, char *));
extern void inode2fh __P((int, char *));

extern char *dirname __P((char *));
extern char *filname __P((char *));
extern char *build_path __P((char *, char *));

extern int fh2inode __P((char *));
extern int getpinode __P((p_inode *inode));
extern char *iso2cp __P((char *));
extern char *cp2iso __P((char *));

extern struct cache *add_cache __P((struct cache **, unsigned int, fattr *));
extern void          rem_cache __P((struct cache **, unsigned int));
extern void          clean_cache __P((struct cache **));
extern struct cache *search_cache __P((struct cache *, unsigned int));

extern struct dcache *add_dcache __P((struct cache *, unsigned int, unsigned int, unsigned char *));
extern void           clean_dcache __P((struct cache *));
extern struct dcache *search_dcache __P((struct cache *, unsigned int, unsigned int));

/* mp_xmit.c */
int sendop __P((int cmd, char *fname, char *rest, int restlen));
int getstr __P((char *str));
int getanswer __P((void));
void shell_feed __P((int));
void init_pty __P((void));
int sendcmd __P((int cmd, char *fname, char *rest, int restlen));
int getcount __P((unsigned char *str, int num));
int senddata __P((char *p, int len));
void long2pstr __P((unsigned int l, unsigned char *s));
void short2pstr __P((unsigned int l, unsigned char *s));
unsigned int pstr2long __P((unsigned char *s));

/* mp_pfs_ops.c */
void *nfsproc_null_2 __P((void));
void *nfsproc_root_2 __P((void));
void *nfsproc_writecache_2 __P((void));
nfsstat *nfsproc_link_2 __P((struct linkargs *la));
nfsstat *nfsproc_rmdir_2 __P((struct diropargs *da));
nfsstat *nfsproc_remove_2 __P((struct diropargs *da));
nfsstat *nfsproc_rename_2 __P((struct renameargs *ra));
nfsstat *nfsproc_symlink_2 __P((struct symlinkargs *sa));
struct readres *nfsproc_read_2 __P((struct readargs *ra));
struct attrstat *nfsproc_write_2 __P((struct writeargs *wa));
struct diropres *nfsproc_mkdir_2 __P((struct createargs *ca));
struct diropres *nfsproc_create_2 __P((struct createargs *ca));
struct diropres *nfsproc_lookup_2 __P((struct diropargs *da));
struct attrstat *nfsproc_getattr_2 __P((struct nfs_fh *fh));
struct attrstat *nfsproc_setattr_2 __P((struct sattrargs *sa));
struct statfsres *nfsproc_statfs_2 __P((struct nfs_fh *fh));
struct readdirres *nfsproc_readdir_2 __P((struct readdirargs *ra));
struct readlinkres *nfsproc_readlink_2 __P((struct nfs_fh *fh));