updates.
[website.git] / docs / toolkit / manual / silcsftp_fs-SilcSFTPFilesystemOps.html
1
2 <html>
3 <head>
4  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-a" />
5  <meta http-equiv="Content-Language" content="en" />
6  <meta name="description" content="SILC Secure Internet Live Conferencing" />
7  <meta name="keywords" content="SILC, secure, chat, protocol, cipher, encrypt, SKE" />
8  <meta content="INDEX, FOLLOW" name="ROBOTS" />
9  <style type="text/css">
10   <!--
11   body { color: #000000; background: #f0f0f0; font-family: Helvetica, Arial, Sans-serif; }
12   a:link { text-decoration: none; color: #2f488f; }
13   a:visited { text-decoration: none;color: #2f488f; }
14   a:active { text-decoration: none; color: #2f488f; }
15   -->
16  </style>
17 </head>
18
19 <body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
20
21 <table border="0" cellspacing="0" cellpadding="6" width="100%">
22  <tr valign="top" bgcolor="#dddddd">
23   <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
24     <a href="http://silcnet.org">SILC Project Website</a></small></td>
25   <td align="right"><small>
26    <a href="index.html">SILC Toolkit Reference Manual</a><br />
27    <a href="toolkit_index.html">Index</a></small></td>
28    </small></td>
29  </tr>
30 </table>
31 <table border="0" cellspacing="0" cellpadding="0" width="100%">
32 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
33 </table>
34
35 <table cellpadding="0" cellspacing="0" border="0">
36  <tr valign="top">
37
38   <td width="200" bgcolor="#f0f0f0">
39    <img src="space.gif" width="1" height="1" border="0" alt="">
40    <table width="100%" cellpadding="2" cellspacing="2" border="0">
41     <tr valign="top"><td>
42 <br />
43 <small>
44 <!-- Template file for the big index that appears in the Toolkit reference
45 manual on the left side.  With this file it is possible to add other than
46 automatically generated links to that list. -->
47
48 <a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br />
49
50
51 <a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br />
52 &nbsp;&nbsp;&nbsp; <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
53 &nbsp;&nbsp;&nbsp; <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
54 &nbsp;&nbsp;&nbsp; <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
55 &nbsp;&nbsp;&nbsp; <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
56 &nbsp;&nbsp;&nbsp; <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
57 &nbsp;&nbsp;&nbsp; <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
58 &nbsp;&nbsp;&nbsp; <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
59 &nbsp;&nbsp;&nbsp; <a href=silchmac.html><img src=box2.gif border=0 alt=>SILC HMAC Interface</a><br />
60 <a href=silccorelib.html><img src=box.gif border=0 alt=>SILC Core Library</a><br />
61 &nbsp;&nbsp;&nbsp; <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
62 &nbsp;&nbsp;&nbsp; <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
63 &nbsp;&nbsp;&nbsp; <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
64 &nbsp;&nbsp;&nbsp; <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
65 &nbsp;&nbsp;&nbsp; <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
66 &nbsp;&nbsp;&nbsp; <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
67 &nbsp;&nbsp;&nbsp; <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
68 &nbsp;&nbsp;&nbsp; <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
69 &nbsp;&nbsp;&nbsp; <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
70 &nbsp;&nbsp;&nbsp; <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
71 &nbsp;&nbsp;&nbsp; <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
72 &nbsp;&nbsp;&nbsp; <a href=silcpubkey.html><img src=box2.gif border=0 alt=>SILC Public Key Payload Interface</a><br />
73 <a href=silcskelib.html><img src=box.gif border=0 alt=>SILC Key Exchange Library</a><br />
74 &nbsp;&nbsp;&nbsp; <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
75 &nbsp;&nbsp;&nbsp; <a href=silcconnauth.html><img src=box2.gif border=0 alt=>SILC Connection Authentication Interface</a><br />
76 <a href=silcvcardlib.html><img src=box.gif border=0 alt=>SILC VCard Library</a><br />
77 &nbsp;&nbsp;&nbsp; <a href=silcvcard.html><img src=box2.gif border=0 alt=>SILC VCard Interface</a><br />
78 <a href=silcmathlib.html><img src=box.gif border=0 alt=>SILC Math Library</a><br />
79 &nbsp;&nbsp;&nbsp; <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
80 &nbsp;&nbsp;&nbsp; <a href=silcmath.html><img src=box2.gif border=0 alt=>SILC Math Interface</a><br />
81 <a href=silcclientlib.html><img src=box.gif border=0 alt=>SILC Client Library</a><br />
82 &nbsp;&nbsp;&nbsp; <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
83 &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 />
84 &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 />
85 &nbsp;&nbsp;&nbsp; <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
86 &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 />
87 &nbsp;&nbsp;&nbsp; <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
88 &nbsp;&nbsp;&nbsp; <a href=silcclient_entry.html><img src=box2.gif border=0 alt=>Client Entry Interface Reference</a><br />
89 <a href=silcasn1lib.html><img src=box.gif border=0 alt=>SILC ASN.1 Library</a><br />
90 &nbsp;&nbsp;&nbsp; <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
91 &nbsp;&nbsp;&nbsp; <a href=silcber.html><img src=box2.gif border=0 alt=>SILC BER interface</a><br />
92 <a href=silchttplib.html><img src=box.gif border=0 alt=>SILC HTTP Library</a><br />
93 &nbsp;&nbsp;&nbsp; <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
94 &nbsp;&nbsp;&nbsp; <a href=silchttpphp.html><img src=box2.gif border=0 alt=>SILC HTTP PHP Translator</a><br />
95 <a href=silcutillib.html><img src=box.gif border=0 alt=>SILC Utility Library</a><br />
96 &nbsp;&nbsp;&nbsp; <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
97 &nbsp;&nbsp;&nbsp; <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
98 &nbsp;&nbsp;&nbsp; <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
99 &nbsp;&nbsp;&nbsp; <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
100 &nbsp;&nbsp;&nbsp; <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
101 &nbsp;&nbsp;&nbsp; <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
102 &nbsp;&nbsp;&nbsp; <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
103 &nbsp;&nbsp;&nbsp; <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
104 &nbsp;&nbsp;&nbsp; <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
105 &nbsp;&nbsp;&nbsp; <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
106 &nbsp;&nbsp;&nbsp; <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
107 &nbsp;&nbsp;&nbsp; <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
108 &nbsp;&nbsp;&nbsp; <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
109 &nbsp;&nbsp;&nbsp; <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
110 &nbsp;&nbsp;&nbsp; <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
111 &nbsp;&nbsp;&nbsp; <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
112 &nbsp;&nbsp;&nbsp; <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
113 &nbsp;&nbsp;&nbsp; <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
114 &nbsp;&nbsp;&nbsp; <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
115 &nbsp;&nbsp;&nbsp; <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
116 &nbsp;&nbsp;&nbsp; <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
117 &nbsp;&nbsp;&nbsp; <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
118 &nbsp;&nbsp;&nbsp; <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
119 &nbsp;&nbsp;&nbsp; <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
120 &nbsp;&nbsp;&nbsp; <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
121 &nbsp;&nbsp;&nbsp; <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
122 &nbsp;&nbsp;&nbsp; <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
123 &nbsp;&nbsp;&nbsp; <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
124 &nbsp;&nbsp;&nbsp; <a href=silcconfig.html><img src=box2.gif border=0 alt=>Config File Interface</a><br />
125 <a href=silcskrlib.html><img src=box.gif border=0 alt=>SILC Key Repository Library</a><br />
126 &nbsp;&nbsp;&nbsp; <a href=silcskr.html><img src=box2.gif border=0 alt=>SILC SKR Interface</a><br />
127 <a href=silcaputillib.html><img src=box.gif border=0 alt=>SILC Application Utility Library</a><br />
128 &nbsp;&nbsp;&nbsp; <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
129 &nbsp;&nbsp;&nbsp; <a href=silcidcache.html><img src=box2.gif border=0 alt=>SILC ID Cache Interface</a><br />
130 <a href=silcsftplib.html><img src=box.gif border=0 alt=>SILC SFTP Library</a><br />
131 &nbsp;&nbsp;&nbsp; <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
132 &nbsp;&nbsp;&nbsp; <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br />
133
134 <br />
135 <b>Resource Links</b>
136 <br />
137 <a href="http://silcnet.org"><img src="box.gif" border="0" alt="">SILC Project Website</a><br />
138 <a href="http://silcnet.org/support/documentation/"><img src="box.gif" border="0" alt="">SILC Protocol Documentation</a><br />
139 <a href="http://silcnet.org/support/documentation/wp/"><img src="box.gif" border="0" alt="">SILC White Paper</a><br />
140 <a href="http://silcnet.org/support/faq/"><img src="box.gif" border="0" alt="">SILC FAQs</a><br />
141
142 </small>
143 <br /><br /><br /><br />
144     </td></tr>
145    </table>
146   </td>
147
148   <td bgcolor="#cccccc" background="dot.gif">
149    <img src="space.gif" width="1" height="1" border="0" alt=""></td>
150
151   <td width="720" bgcolor="#ffffff">
152    <img src="space.gif" width="1" height="1" border="0" alt="">
153    <table cellpadding="2" cellspacing="6" width="100%">
154     <tr><td valign="top">
155 <br />
156
157 <FONT SIZE="+2" COLOR="#000055"><B>Structure <A NAME="SilcSFTPFilesystemOps">SilcSFTPFilesystemOps</A></FONT></B><BR><BR>
158
159 <FONT SIZE="+1"><B>
160 <FONT COLOR="#000055">NAME
161 </FONT></B></FONT>
162 <PRE><FONT FACE="courier" size="3">
163     typedef struct SilcSFTPFilesystemOpsStruct { ... }
164                      *<B>SilcSFTPFilesystemOps</B>;
165
166 </FONT></PRE><FONT SIZE="+1"><B>
167 <FONT COLOR="#000055">DESCRIPTION
168 </FONT></B></FONT>
169 <PRE><FONT FACE="Helvetiva,Arial,Sans-serif">
170     This structure defines the generic filesystem access.  When the
171     filesystem is accessed these functions are called to do the requested
172     filesystem operation.  The level that implements the actual filesystem
173     must fill this structure with the callback functions providing the
174     access to the filesystem.
175
176 </FONT></PRE><FONT SIZE="+1"><B>
177 <FONT COLOR="#000055">SOURCE
178 </FONT></B></FONT>
179 <PRE><FONT FACE="courier" size="3">    typedef struct SilcSFTPFilesystemOpsStruct {
180       /* Find a file handle by the file handle data indicated by the `data'.
181          If the handle is not found this returns NULL. */
182       <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> (*sftp_get_handle)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
183                                         const unsigned char *data,
184                                         <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> data_len);
185     
186       /* Return encoded handle of `handle' or NULL on error. The caller
187          must free the returned buffer. */
188       unsigned char *(*sftp_encode_handle)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
189                                            <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
190                                            <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> *handle_len);
191     
192       /* Open a file indicated by the `filename' with flags indicated by the
193          `pflags', and with attributes indicated by the `attr'.  Calls the
194          `callback' to return the opened file handle. */
195       void (*sftp_open)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
196                         const char *filename,
197                         <A HREF="silcsftp-SilcSFTPFileOperation.html">SilcSFTPFileOperation</A> pflags,
198                         <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attr,
199                         <A HREF="silcsftp-SilcSFTPHandleCallback.html">SilcSFTPHandleCallback</A> callback,
200                         void *callback_context);
201     
202       /* Closes the file indicated by the file handle `handle'.  Calls the
203          `callback' to indicate the status of the closing. */
204       void (*sftp_close)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
205                          <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
206                          <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
207                          void *callback_context);
208     
209       /* Reads data from the file indicated by the file handle `handle' starting
210          from the offset of `offset' at most `len' bytes.  The `callback' is
211          called to return the read data. */
212       void (*sftp_read)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
213                         <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
214                         <A HREF="silctypes-SilcUInt64.html">SilcUInt64</A> offset,
215                         <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> len,
216                         <A HREF="silcsftp-SilcSFTPDataCallback.html">SilcSFTPDataCallback</A> callback,
217                         void *callback_context);
218     
219       /* Writes to a file indicated by the file handle `handle' starting from
220          offset of `offset' at most `data_len' bytes of `data'.  The `callback'
221          is called to indicate the status of the writing. */
222       void (*sftp_write)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
223                          <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
224                          <A HREF="silctypes-SilcUInt64.html">SilcUInt64</A> offset,
225                          const unsigned char *data,
226                          <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> data_len,
227                          <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
228                          void *callback_context);
229     
230       /* Removes a file indicated by the `filename'.  Calls the `callback'
231          to indicate the status of the removing. */
232       void (*sftp_remove)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
233                           const char *filename,
234                           <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
235                           void *callback_context);
236     
237       /* Renames a file indicated by the `oldname' to the name `newname'.  The
238          `callback' is called to indicate the status of the renaming. */
239       void (*sftp_rename)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
240                           const char *oldname,
241                           const char *newname,
242                           <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
243                           void *callback_context);
244     
245       /* Creates a new directory indicated by the `path' with attributes indicated
246          by the `attrs'. The `callback' is called to indicate the status of the
247          creation. */
248       void (*sftp_mkdir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
249                          const char *path,
250                          <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attrs,
251                          <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
252                          void *callback_context);
253     
254       /* Removes a directory indicated by the `path' and calls the `callback'
255          to indicate the status of the removal. */
256       void (*sftp_rmdir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
257                          const char *path,
258                          <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
259                          void *callback_context);
260     
261       /* Opens a directory indicated by the `path'.  The `callback' is called
262          to return the opened file handle. */
263       void (*sftp_opendir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
264                            const char *path,
265                            <A HREF="silcsftp-SilcSFTPHandleCallback.html">SilcSFTPHandleCallback</A> callback,
266                            void *callback_context);
267     
268       /* Reads the contents of the directory indicated by the `handle' and
269          calls the `callback' to return the read file(s) from the directory. */
270       void (*sftp_readdir)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
271                            <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
272                            <A HREF="silcsftp-SilcSFTPNameCallback.html">SilcSFTPNameCallback</A> callback,
273                            void *callback_context);
274     
275       /* Gets the file attributes for a file indicated by the `path'. This
276          will follow symbolic links also. Calls the `callback' to return the
277          file attributes. */
278       void (*sftp_stat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
279                         const char *path,
280                         <A HREF="silcsftp-SilcSFTPAttrCallback.html">SilcSFTPAttrCallback</A> callback,
281                         void *callback_context);
282     
283       /* Gets the file attributes for a file indicated by the `path'. This
284          will not follow symbolic links. Calls the `callback' to return the
285          file attributes. */
286       void (*sftp_lstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
287                          const char *path,
288                          <A HREF="silcsftp-SilcSFTPAttrCallback.html">SilcSFTPAttrCallback</A> callback,
289                          void *callback_context);
290     
291       /* Gets a file attributes for a opened file indicated by the `handle'.
292          Calls the `callback' to return the file attributes. */
293       void (*sftp_fstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
294                          <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
295                          <A HREF="silcsftp-SilcSFTPAttrCallback.html">SilcSFTPAttrCallback</A> callback,
296                          void *callback_context);
297     
298       /* Sets a file attributes to a file indicated by the `path' with the
299          attributes indicated by the `attrs'.  Calls the `callback' to indicate
300          the status of the setting. */
301       void (*sftp_setstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
302                            const char *path,
303                            <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attrs,
304                            <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
305                            void *callback_context);
306     
307       /* Sets a file attributes to a opened file indicated by the `handle' with
308          the attributes indicated by the `attrs'.  Calls the `callback' to
309          indicate the status of the setting. */
310       void (*sftp_fsetstat)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
311                             <A HREF="silcsftp-SilcSFTPHandle.html">SilcSFTPHandle</A> handle,
312                             <A HREF="silcsftp-SilcSFTPAttributes.html">SilcSFTPAttributes</A> attrs,
313                             <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
314                             void *callback_context);
315     
316       /* Reads the target of a symbolic link indicated by the `path'.  The
317          `callback' is called to return the target of the symbolic link. */
318       void (*sftp_readlink)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
319                             const char *path,
320                             <A HREF="silcsftp-SilcSFTPNameCallback.html">SilcSFTPNameCallback</A> callback,
321                             void *callback_context);
322     
323       /* Creates a new symbolic link indicated by the `linkpath' to the target
324          indicated by the `targetpath'.  The `callback' is called to indicate
325          the status of creation. */
326       void (*sftp_symlink)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
327                            const char *linkpath,
328                            const char *targetpath,
329                            <A HREF="silcsftp-SilcSFTPStatusCallback.html">SilcSFTPStatusCallback</A> callback,
330                            void *callback_context);
331     
332       /* Canonicalizes the path indicated by the `path' to a absolute path.
333          The `callback' is called to return the absolute path. */
334       void (*sftp_realpath)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
335                             const char *path,
336                             <A HREF="silcsftp-SilcSFTPNameCallback.html">SilcSFTPNameCallback</A> callback,
337                             void *callback_context);
338     
339       /* Performs an extended operation indicated by the `request' with
340          optional extended operation data indicated by the `data'.  The callback
341          is called to return any data associated with the extended request. */
342       void (*sftp_extended)(void *context, <A HREF="silcsftp-SilcSFTP.html">SilcSFTP</A> sftp,
343                             const char *request,
344                             const unsigned char *data,
345                             <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> data_len,
346                             <A HREF="silcsftp-SilcSFTPExtendedCallback.html">SilcSFTPExtendedCallback</A> callback,
347                             void *callback_context);
348     } *<B>SilcSFTPFilesystemOps</B>;</FONT></PRE>
349 <br /><br /><br /><br />
350     </td></tr>
351    </table>
352   </td>
353
354   <td bgcolor="#cccccc" background="dot.gif">
355    <img src="space.gif" width="1" height="1" border="0" alt=""></td>
356
357   <td width="180" bgcolor="#f0f0f0">
358     <img src="space.gif" width="1" height="1" border="0" alt="">
359     <table width="100%" cellpadding="4" cellspacing="0">
360     <tr valign="top"><td>
361 <br />
362 <font face="Helvetica,Arial,Sans-serif" size="1">
363 <A HREF="silcsftp_fs.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SFTP Filesystems Interface</A><BR>
364 <A HREF="silcsftp_fs-SilcSFTPFilesystemOps.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcSFTPFilesystemOps</A><BR>
365 <A HREF="silcsftp_fs-SilcSFTPFilesystem.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcSFTPFilesystem</A><BR>
366 <A HREF="silcsftp_fs-SilcSFTPFSMemoryPerm.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcSFTPFSMemoryPerm</A><BR>
367 <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>
368 <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>
369 <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>
370 <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>
371 <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>
372 <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>
373 </font>
374
375 <br /><br /><br /><br />
376     </td></tr>
377     </table>
378   </td>
379 </tr>
380 </table>
381
382 <table border="0" cellspacing="0" cellpadding="0" width="100%">
383 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
384 </table>
385 <table border="0" cellspacing="0" cellpadding="6" width="100%">
386  <tr valign="top" bgcolor="#dddddd">
387   <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
388     <a href="http://silcnet.org">SILC Project Website</a></small></td>
389   <td align="right"><small>
390    <a href="index.html">SILC Toolkit Reference Manual</a><br />
391    <a href="toolkit_index.html">Index</a></small></td>
392    </small></td>
393  </tr>
394 </table>
395
396 </body>
397 </html>