updates.
[website.git] / docs / toolkit / manual / silcsftp_fs-SilcSFTPFilesystemOps.html
diff --git a/docs/toolkit/manual/silcsftp_fs-SilcSFTPFilesystemOps.html b/docs/toolkit/manual/silcsftp_fs-SilcSFTPFilesystemOps.html
new file mode 100644 (file)
index 0000000..fb6b168
--- /dev/null
@@ -0,0 +1,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=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=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=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=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=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=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=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=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 />
+<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=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=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=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 />
+
+<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>