File: silcsftp_fs-SilcSFTPFilesystemOps.html

package info (click to toggle)
silc-toolkit 1.1.10-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 34,068 kB
  • ctags: 8,578
  • sloc: ansic: 79,872; sh: 9,948; cpp: 1,480; asm: 1,001; makefile: 188; perl: 126
file content (397 lines) | stat: -rw-r--r-- 26,229 bytes parent folder | download | duplicates (2)
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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397

<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-a" />
 <meta http-equiv="Content-Language" content="en" />
 <meta name="description" content="SILC Secure Internet Live Conferencing" />
 <meta name="keywords" content="SILC, secure, chat, protocol, cipher, encrypt, SKE" />
 <meta content="INDEX, FOLLOW" name="ROBOTS" />
 <style type="text/css">
  <!--
  body { color: #000000; background: #f0f0f0; font-family: Helvetica, Arial, Sans-serif; }
  a:link { text-decoration: none; color: #2f488f; }
  a:visited { text-decoration: none;color: #2f488f; }
  a:active { text-decoration: none; color: #2f488f; }
  -->
 </style>
</head>

<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">

<table border="0" cellspacing="0" cellpadding="6" width="100%">
 <tr valign="top" bgcolor="#dddddd">
  <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
    <a href="http://silcnet.org">SILC Project Website</a></small></td>
  <td align="right"><small>
   <a href="index.html">SILC Toolkit Reference Manual</a><br />
   <a href="toolkit_index.html">Index</a></small></td>
   </small></td>
 </tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
</table>

<table cellpadding="0" cellspacing="0" border="0">
 <tr valign="top">

  <td width="200" bgcolor="#f0f0f0">
   <img src="space.gif" width="1" height="1" border="0" alt="">
   <table width="100%" cellpadding="2" cellspacing="2" border="0">
    <tr valign="top"><td>
<br />
<small>
<!-- Template file for the big index that appears in the Toolkit reference
manual on the left side.  With this file it is possible to add other than
automatically generated links to that list. -->

<a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br />


<a href=silcvcardlib.html><img src=box.gif border=0 alt=>SILC VCard Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcvcard.html><img src=box2.gif border=0 alt=>SILC VCard Interface</a><br />
<a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchmac.html><img src=box2.gif border=0 alt=>SILC HMAC Interface</a><br />
<a href=silcclientlib.html><img src=box.gif border=0 alt=>SILC Client Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
&nbsp;&nbsp;&nbsp; <a href=command_reply_args.html><img src=box2.gif border=0 alt=>Arguments for <b>command_reply</b> Client Operation</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstatus_args.html><img src=box2.gif border=0 alt=>SilcStatus Error Arguments in <b>command_reply</b> Client Operation</a><br />
&nbsp;&nbsp;&nbsp; <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient_unicode.html><img src=box2.gif border=0 alt=>Unicode and UTF-8 Strings in Client Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcclient_entry.html><img src=box2.gif border=0 alt=>Client Entry Interface Reference</a><br />
<a href=silcmathlib.html><img src=box.gif border=0 alt=>SILC Math Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmath.html><img src=box2.gif border=0 alt=>SILC Math Interface</a><br />
<a href=silcaputillib.html><img src=box.gif border=0 alt=>SILC Application Utility Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcidcache.html><img src=box2.gif border=0 alt=>SILC ID Cache Interface</a><br />
<a href=silcskrlib.html><img src=box.gif border=0 alt=>SILC Key Repository Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcskr.html><img src=box2.gif border=0 alt=>SILC SKR Interface</a><br />
<a href=silcasn1lib.html><img src=box.gif border=0 alt=>SILC ASN.1 Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcber.html><img src=box2.gif border=0 alt=>SILC BER interface</a><br />
<a href=silcskelib.html><img src=box.gif border=0 alt=>SILC Key Exchange Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcconnauth.html><img src=box2.gif border=0 alt=>SILC Connection Authentication Interface</a><br />
<a href=silcsftplib.html><img src=box.gif border=0 alt=>SILC SFTP Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br />
<a href=silccorelib.html><img src=box.gif border=0 alt=>SILC Core Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcpubkey.html><img src=box2.gif border=0 alt=>SILC Public Key Payload Interface</a><br />
<a href=silcutillib.html><img src=box.gif border=0 alt=>SILC Utility Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
&nbsp;&nbsp;&nbsp; <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silcconfig.html><img src=box2.gif border=0 alt=>Config File Interface</a><br />
<a href=silchttplib.html><img src=box.gif border=0 alt=>SILC HTTP Library</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
&nbsp;&nbsp;&nbsp; <a href=silchttpphp.html><img src=box2.gif border=0 alt=>SILC HTTP PHP Translator</a><br />

<br />
<b>Resource Links</b>
<br />
<a href="http://silcnet.org"><img src="box.gif" border="0" alt="">SILC Project Website</a><br />
<a href="http://silcnet.org/support/documentation/"><img src="box.gif" border="0" alt="">SILC Protocol Documentation</a><br />
<a href="http://silcnet.org/support/documentation/wp/"><img src="box.gif" border="0" alt="">SILC White Paper</a><br />
<a href="http://silcnet.org/support/faq/"><img src="box.gif" border="0" alt="">SILC FAQs</a><br />

</small>
<br /><br /><br /><br />
    </td></tr>
   </table>
  </td>

  <td bgcolor="#cccccc" background="dot.gif">
   <img src="space.gif" width="1" height="1" border="0" alt=""></td>

  <td width="720" bgcolor="#ffffff">
   <img src="space.gif" width="1" height="1" border="0" alt="">
   <table cellpadding="2" cellspacing="6" width="100%">
    <tr><td valign="top">
<br />

<FONT SIZE="+2" COLOR="#000055"><B>Structure <A NAME="SilcSFTPFilesystemOps">SilcSFTPFilesystemOps</A></FONT></B><BR><BR>

<FONT SIZE="+1"><B>
<FONT COLOR="#000055">NAME
</FONT></B></FONT>
<PRE><FONT FACE="courier" size="3">
    typedef struct SilcSFTPFilesystemOpsStruct { ... }
                     *<B>SilcSFTPFilesystemOps</B>;

</FONT></PRE><FONT SIZE="+1"><B>
<FONT COLOR="#000055">DESCRIPTION
</FONT></B></FONT>
<PRE><FONT FACE="Helvetiva,Arial,Sans-serif">
    This structure defines the generic filesystem access.  When the
    filesystem is accessed these functions are called to do the requested
    filesystem operation.  The level that implements the actual filesystem
    must fill this structure with the callback functions providing the
    access to the filesystem.

</FONT></PRE><FONT SIZE="+1"><B>
<FONT COLOR="#000055">SOURCE
</FONT></B></FONT>
<PRE><FONT FACE="courier" size="3">    typedef struct SilcSFTPFilesystemOpsStruct {
      /* Find a file handle by the file handle data indicated by the `data'.
         If the handle is not found this returns NULL. */
      <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> (*sftp_get_handle)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                                        const unsigned char *data,
                                        <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> data_len);
    
      /* Return encoded handle of `handle' or NULL on error. The caller
         must free the returned buffer. */
      unsigned char *(*sftp_encode_handle)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                                           <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                                           <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> *handle_len);
    
      /* Open a file indicated by the `filename' with flags indicated by the
         `pflags', and with attributes indicated by the `attr'.  Calls the
         `callback' to return the opened file handle. */
      void (*sftp_open)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                        const char *filename,
                        <A HREF="silcsftp-SilcSFTPFileOperation.html">SilcSFTPFileOperation</A> pflags,
                        <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attr,
                        <A HREF="silcsftp-SilcSFTPHandleCallback.html">SilcSFTPHandleCallback</A> callback,
                        void *callback_context);
    
      /* Closes the file indicated by the file handle `handle'.  Calls the
         `callback' to indicate the status of the closing. */
      void (*sftp_close)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                         <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                         <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                         void *callback_context);
    
      /* Reads data from the file indicated by the file handle `handle' starting
         from the offset of `offset' at most `len' bytes.  The `callback' is
         called to return the read data. */
      void (*sftp_read)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                        <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                        <A HREF="silctypes-SilcUInt64.html">SilcUInt64</A> offset,
                        <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> len,
                        <A HREF="silcsftp-SilcSFTPDataCallback.html">SilcSFTPDataCallback</A> callback,
                        void *callback_context);
    
      /* Writes to a file indicated by the file handle `handle' starting from
         offset of `offset' at most `data_len' bytes of `data'.  The `callback'
         is called to indicate the status of the writing. */
      void (*sftp_write)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                         <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                         <A HREF="silctypes-SilcUInt64.html">SilcUInt64</A> offset,
                         const unsigned char *data,
                         <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> data_len,
                         <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                         void *callback_context);
    
      /* Removes a file indicated by the `filename'.  Calls the `callback'
         to indicate the status of the removing. */
      void (*sftp_remove)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                          const char *filename,
                          <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                          void *callback_context);
    
      /* Renames a file indicated by the `oldname' to the name `newname'.  The
         `callback' is called to indicate the status of the renaming. */
      void (*sftp_rename)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                          const char *oldname,
                          const char *newname,
                          <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                          void *callback_context);
    
      /* Creates a new directory indicated by the `path' with attributes indicated
         by the `attrs'. The `callback' is called to indicate the status of the
         creation. */
      void (*sftp_mkdir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                         const char *path,
                         <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attrs,
                         <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                         void *callback_context);
    
      /* Removes a directory indicated by the `path' and calls the `callback'
         to indicate the status of the removal. */
      void (*sftp_rmdir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                         const char *path,
                         <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                         void *callback_context);
    
      /* Opens a directory indicated by the `path'.  The `callback' is called
         to return the opened file handle. */
      void (*sftp_opendir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                           const char *path,
                           <A HREF="silcsftp-SilcSFTPHandleCallback.html">SilcSFTPHandleCallback</A> callback,
                           void *callback_context);
    
      /* Reads the contents of the directory indicated by the `handle' and
         calls the `callback' to return the read file(s) from the directory. */
      void (*sftp_readdir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                           <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                           <A HREF="silcsftp-SilcSFTPNameCallback.html">SilcSFTPNameCallback</A> callback,
                           void *callback_context);
    
      /* Gets the file attributes for a file indicated by the `path'. This
         will follow symbolic links also. Calls the `callback' to return the
         file attributes. */
      void (*sftp_stat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                        const char *path,
                        <A HREF="silcsftp-SilcSFTPAttrCallback.html">SilcSFTPAttrCallback</A> callback,
                        void *callback_context);
    
      /* Gets the file attributes for a file indicated by the `path'. This
         will not follow symbolic links. Calls the `callback' to return the
         file attributes. */
      void (*sftp_lstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                         const char *path,
                         <A HREF="silcsftp-SilcSFTPAttrCallback.html">SilcSFTPAttrCallback</A> callback,
                         void *callback_context);
    
      /* Gets a file attributes for a opened file indicated by the `handle'.
         Calls the `callback' to return the file attributes. */
      void (*sftp_fstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                         <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                         <A HREF="silcsftp-SilcSFTPAttrCallback.html">SilcSFTPAttrCallback</A> callback,
                         void *callback_context);
    
      /* Sets a file attributes to a file indicated by the `path' with the
         attributes indicated by the `attrs'.  Calls the `callback' to indicate
         the status of the setting. */
      void (*sftp_setstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                           const char *path,
                           <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attrs,
                           <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                           void *callback_context);
    
      /* Sets a file attributes to a opened file indicated by the `handle' with
         the attributes indicated by the `attrs'.  Calls the `callback' to
         indicate the status of the setting. */
      void (*sftp_fsetstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                            <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
                            <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attrs,
                            <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                            void *callback_context);
    
      /* Reads the target of a symbolic link indicated by the `path'.  The
         `callback' is called to return the target of the symbolic link. */
      void (*sftp_readlink)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                            const char *path,
                            <A HREF="silcsftp-SilcSFTPNameCallback.html">SilcSFTPNameCallback</A> callback,
                            void *callback_context);
    
      /* Creates a new symbolic link indicated by the `linkpath' to the target
         indicated by the `targetpath'.  The `callback' is called to indicate
         the status of creation. */
      void (*sftp_symlink)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                           const char *linkpath,
                           const char *targetpath,
                           <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
                           void *callback_context);
    
      /* Canonicalizes the path indicated by the `path' to a absolute path.
         The `callback' is called to return the absolute path. */
      void (*sftp_realpath)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                            const char *path,
                            <A HREF="silcsftp-SilcSFTPNameCallback.html">SilcSFTPNameCallback</A> callback,
                            void *callback_context);
    
      /* Performs an extended operation indicated by the `request' with
         optional extended operation data indicated by the `data'.  The callback
         is called to return any data associated with the extended request. */
      void (*sftp_extended)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
                            const char *request,
                            const unsigned char *data,
                            <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> data_len,
                            <A HREF="silcsftp-SilcSFTPExtendedCallback.html">SilcSFTPExtendedCallback</A> callback,
                            void *callback_context);
    } *<B>SilcSFTPFilesystemOps</B>;</FONT></PRE>
<br /><br /><br /><br />
    </td></tr>
   </table>
  </td>

  <td bgcolor="#cccccc" background="dot.gif">
   <img src="space.gif" width="1" height="1" border="0" alt=""></td>

  <td width="180" bgcolor="#f0f0f0">
    <img src="space.gif" width="1" height="1" border="0" alt="">
    <table width="100%" cellpadding="4" cellspacing="0">
    <tr valign="top"><td>
<br />
<font face="Helvetica,Arial,Sans-serif" size="1">
<A HREF="silcsftp_fs.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SFTP Filesystems Interface</A><BR>
<A HREF="silcsftp_fs-SilcSFTPFilesystemOps.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcSFTPFilesystemOps</A><BR>
<A HREF="silcsftp_fs-SilcSFTPFilesystem.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcSFTPFilesystem</A><BR>
<A HREF="silcsftp_fs-SilcSFTPFSMemoryPerm.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcSFTPFSMemoryPerm</A><BR>
<A HREF="silcsftp_fs-silc_sftp_fs_memory_alloc.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_sftp_fs_memory_alloc</A><BR>
<A HREF="silcsftp_fs-silc_sftp_fs_memory_free.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_sftp_fs_memory_free</A><BR>
<A HREF="silcsftp_fs-silc_sftp_fs_memory_add_dir.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_sftp_fs_memory_add_dir</A><BR>
<A HREF="silcsftp_fs-silc_sftp_fs_memory_del_dir.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_sftp_fs_memory_del_dir</A><BR>
<A HREF="silcsftp_fs-silc_sftp_fs_memory_add_file.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_sftp_fs_memory_add_file</A><BR>
<A HREF="silcsftp_fs-silc_sftp_fs_memory_del_file.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_sftp_fs_memory_del_file</A><BR>
</font>

<br /><br /><br /><br />
    </td></tr>
    </table>
  </td>
</tr>
</table>

<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="6" width="100%">
 <tr valign="top" bgcolor="#dddddd">
  <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
    <a href="http://silcnet.org">SILC Project Website</a></small></td>
  <td align="right"><small>
   <a href="index.html">SILC Toolkit Reference Manual</a><br />
   <a href="toolkit_index.html">Index</a></small></td>
   </small></td>
 </tr>
</table>

</body>
</html>