<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>pcsc-lite: sys_unix.c File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_c68a5dfdca54003c765e303a18006edb.html">src</a> </div> </div> <div class="contents"> <h1>sys_unix.c File Reference</h1> <p>This handles abstract system level calls. <a href="#_details">More...</a></p> <code>#include "config.h"</code><br/> <code>#include <sys/types.h></code><br/> <code>#include <sys/mman.h></code><br/> <code>#include <sys/stat.h></code><br/> <code>#include <sys/wait.h></code><br/> <code>#include <sys/time.h></code><br/> <code>#include <sys/file.h></code><br/> <code>#include <fcntl.h></code><br/> <code>#include <errno.h></code><br/> <code>#include <unistd.h></code><br/> <code>#include <stdio.h></code><br/> <code>#include <stdlib.h></code><br/> <code>#include <string.h></code><br/> <code>#include <signal.h></code><br/> <code>#include <time.h></code><br/> <code>#include "misc.h"</code><br/> <code>#include "<a class="el" href="sys__generic_8h_source.html">sys_generic.h</a>"</code><br/> <code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/> <div class="dynheader"> Include dependency graph for sys_unix.c:</div> <div class="dynsection"> </div> <p><a href="sys__unix_8c_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a19e3ec9c17b0a379ff7b0b14fce101b5">SYS_Initialize</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Make system wide initialization. <a href="#a19e3ec9c17b0a379ff7b0b14fce101b5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#aaa8a8aa9243f8820fa63e1bff44c84dd">SYS_Mkdir</a> (const char *path, int perms)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Attempts to create a directory with some permissions. <a href="#aaa8a8aa9243f8820fa63e1bff44c84dd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a048c2f2436f5e0d7f4ee6129fba68e79">SYS_GetPID</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the running process's ID. <a href="#a048c2f2436f5e0d7f4ee6129fba68e79"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#ac5d5594ed932c84d8dc62c404d2bde09">SYS_Sleep</a> (int iTimeVal)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Makes the current process sleep for some seconds. <a href="#ac5d5594ed932c84d8dc62c404d2bde09"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#af101ba8774c74acd78f38d631b7d7564">SYS_USleep</a> (int iTimeVal)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Makes the current process sleep for some microseconds. <a href="#af101ba8774c74acd78f38d631b7d7564"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#aabf578a1fa970bfd0920706a9b5b0fe8">SYS_OpenFile</a> (const char *pcFile, int flags, int mode)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Opens/creates a file. <a href="#aabf578a1fa970bfd0920706a9b5b0fe8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a88369bb24acf2611f712b9c67a78e6d3">SYS_CloseFile</a> (int iHandle)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Opens/creates a file. <a href="#a88369bb24acf2611f712b9c67a78e6d3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a8598711ecee3b7dbbe3cd33d24751839">SYS_RemoveFile</a> (const char *pcFile)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Removes a file. <a href="#a8598711ecee3b7dbbe3cd33d24751839"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab91a01f036caa574bb1fbed45752e1ed"></a><!-- doxytag: member="sys_unix.c::SYS_Chmod" ref="ab91a01f036caa574bb1fbed45752e1ed" args="(const char *path, int mode)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_Chmod</b> (const char *path, int mode)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77622253d46bff58d9c405dac8549fe8"></a><!-- doxytag: member="sys_unix.c::SYS_Chdir" ref="a77622253d46bff58d9c405dac8549fe8" args="(const char *path)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_Chdir</b> (const char *path)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a98c8fd046ed0f4504c3c83664faf08"></a><!-- doxytag: member="sys_unix.c::SYS_GetUID" ref="a3a98c8fd046ed0f4504c3c83664faf08" args="(void)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_GetUID</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe662aa675575ba03b50d6dbd35f4231"></a><!-- doxytag: member="sys_unix.c::SYS_GetGID" ref="afe662aa675575ba03b50d6dbd35f4231" args="(void)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_GetGID</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6237f1e8cccb94e4b8a8fb6fe5e26d4a"></a><!-- doxytag: member="sys_unix.c::SYS_SeekFile" ref="a6237f1e8cccb94e4b8a8fb6fe5e26d4a" args="(int iHandle, int iSeekLength)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_SeekFile</b> (int iHandle, int iSeekLength)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe4d21b478ca4dd443e0c780cdf42419"></a><!-- doxytag: member="sys_unix.c::SYS_ReadFile" ref="afe4d21b478ca4dd443e0c780cdf42419" args="(int iHandle, char *pcBuffer, int iLength)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_ReadFile</b> (int iHandle, char *pcBuffer, int iLength)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0aa83280273a128a9c2bfd7edb731fd4"></a><!-- doxytag: member="sys_unix.c::SYS_WriteFile" ref="a0aa83280273a128a9c2bfd7edb731fd4" args="(int iHandle, const char *pcBuffer, int iLength)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_WriteFile</b> (int iHandle, const char *pcBuffer, int iLength)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a54df036495282ead0e14788b5e14f451">SYS_GetPageSize</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the memory page size. <a href="#a54df036495282ead0e14788b5e14f451"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL void * </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#ac2e0ea856a110fff201c8f315d6c89e3">SYS_MemoryMap</a> (int iSize, int iFid, int iOffset)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Map the file <code>iFid</code> in memory for reading and writing. <a href="#ac2e0ea856a110fff201c8f315d6c89e3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL void * </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#af39e19e5beb78a2529f75d044609217a">SYS_PublicMemoryMap</a> (int iSize, int iFid, int iOffset)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Map the file <code>iFid</code> in memory only for reading. <a href="#af39e19e5beb78a2529f75d044609217a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL void </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a464b8d0b052a6e9fb3aa898b5d644619">SYS_PublicMemoryUnmap</a> (void *ptr, int iSize)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unmap a memory segment. <a href="#a464b8d0b052a6e9fb3aa898b5d644619"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#a3eff77be19cd07b0bb7dfd0ccc2f292b">SYS_MMapSynchronize</a> (void *begin, int length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Writes the changes made in a memory map to the disk mapped file. <a href="#a3eff77be19cd07b0bb7dfd0ccc2f292b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a470dc3c2665760a60116ab566cc3cba8"></a><!-- doxytag: member="sys_unix.c::SYS_Fork" ref="a470dc3c2665760a60116ab566cc3cba8" args="(void)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_Fork</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">INTERNAL int </td><td class="memItemRight" valign="bottom"><a class="el" href="sys__unix_8c.html#af76f44e90cad6eb8641805e297085d5b">SYS_Daemon</a> (int nochdir, int noclose)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">put the process to run in the background. <a href="#af76f44e90cad6eb8641805e297085d5b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3021176fce8b42f4bffc383059949392"></a><!-- doxytag: member="sys_unix.c::SYS_Stat" ref="a3021176fce8b42f4bffc383059949392" args="(const char *pcFile, struct stat *psStatus)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_Stat</b> (const char *pcFile, struct stat *psStatus)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95bd14bb9f0995704747706b78a5980a"></a><!-- doxytag: member="sys_unix.c::SYS_RandomInt" ref="a95bd14bb9f0995704747706b78a5980a" args="(int fStart, int fEnd)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_RandomInt</b> (int fStart, int fEnd)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27a544e94fe4e1ad16a0978627d40103"></a><!-- doxytag: member="sys_unix.c::SYS_GetSeed" ref="a27a544e94fe4e1ad16a0978627d40103" args="(void)" --> INTERNAL int </td><td class="memItemRight" valign="bottom"><b>SYS_GetSeed</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa751f5467efbc8fb4b408ed703ab0806"></a><!-- doxytag: member="sys_unix.c::SYS_Exit" ref="aa751f5467efbc8fb4b408ed703ab0806" args="(int iRetVal)" --> INTERNAL void </td><td class="memItemRight" valign="bottom"><b>SYS_Exit</b> (int iRetVal)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>This handles abstract system level calls. </p> <p>Definition in file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a88369bb24acf2611f712b9c67a78e6d3"></a><!-- doxytag: member="sys_unix.c::SYS_CloseFile" ref="a88369bb24acf2611f712b9c67a78e6d3" args="(int iHandle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_CloseFile </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>iHandle</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Opens/creates a file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iHandle</em> </td><td>File descriptor.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Error code. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success. </td></tr> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>An error ocurred. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00143">143</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__svc_8c_source.html#l00078">CreateContextThread()</a>, <a class="el" href="winscard__clnt_8c_source.html#l00357">SCardEstablishContextTH()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03864">SCardUnload()</a>, <a class="el" href="winscard__msg_8c_source.html#l00478">SHMCleanupSharedSegment()</a>, <a class="el" href="winscard__msg_8c_source.html#l00122">SHMClientCloseSession()</a>, <a class="el" href="winscard__msg_8c_source.html#l00075">SHMClientSetupSession()</a>, <a class="el" href="winscard__msg__srv_8c_source.html#l00087">SHMProcessCommonChannelRequest()</a>, <a class="el" href="winscard__msg__srv_8c_source.html#l00261">SHMProcessEventsContext()</a>, <a class="el" href="utils_8c_source.html#l00087">StatSynchronize()</a>, <a class="el" href="utils_8c_source.html#l00163">StatSynchronizeContext()</a>, and <a class="el" href="sys__unix_8c_source.html#l00318">SYS_Daemon()</a>.</p> </div> </div> <a class="anchor" id="af76f44e90cad6eb8641805e297085d5b"></a><!-- doxytag: member="sys_unix.c::SYS_Daemon" ref="af76f44e90cad6eb8641805e297085d5b" args="(int nochdir, int noclose)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_Daemon </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>nochdir</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>noclose</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>put the process to run in the background. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>nochdir</em> </td><td>if zero, change the current directory to "/". </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>noclose</em> </td><td>if zero, redirect standard imput/output/error to /dev/nulll.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>error code. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>success. </td></tr> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>an error ocurred. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00318">318</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>References <a class="el" href="sys__unix_8c_source.html#l00143">SYS_CloseFile()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a54df036495282ead0e14788b5e14f451"></a><!-- doxytag: member="sys_unix.c::SYS_GetPageSize" ref="a54df036495282ead0e14788b5e14f451" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_GetPageSize </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Gets the memory page size. </p> <p>The page size is used when calling the <code><a class="el" href="sys__generic_8h.html#a283734774916d1b4f11c6da3ec57d78a" title="Map the file iFid in memory for reading and writing.">SYS_MemoryMap()</a></code> and <code><a class="el" href="sys__generic_8h.html#aec318ae5b72ec6d2ead5009940d6e79d" title="Map the file iFid in memory only for reading.">SYS_PublicMemoryMap()</a></code> functions.</p> <dl class="return"><dt><b>Returns:</b></dt><dd>Number of bytes per page. </dd></dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00207">207</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00357">SCardEstablishContextTH()</a>, and <a class="el" href="utils_8c_source.html#l00087">StatSynchronize()</a>.</p> </div> </div> <a class="anchor" id="a048c2f2436f5e0d7f4ee6129fba68e79"></a><!-- doxytag: member="sys_unix.c::SYS_GetPID" ref="a048c2f2436f5e0d7f4ee6129fba68e79" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_GetPID </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Gets the running process's ID. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>PID. </dd></dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00071">71</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="utils_8c_source.html#l00163">StatSynchronizeContext()</a>.</p> </div> </div> <a class="anchor" id="a19e3ec9c17b0a379ff7b0b14fce101b5"></a><!-- doxytag: member="sys_unix.c::SYS_Initialize" ref="a19e3ec9c17b0a379ff7b0b14fce101b5" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_Initialize </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Make system wide initialization. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Eror code. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00043">43</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00357">SCardEstablishContextTH()</a>.</p> </div> </div> <a class="anchor" id="ac2e0ea856a110fff201c8f315d6c89e3"></a><!-- doxytag: member="sys_unix.c::SYS_MemoryMap" ref="ac2e0ea856a110fff201c8f315d6c89e3" args="(int iSize, int iFid, int iOffset)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL void* SYS_MemoryMap </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>iSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>iFid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>iOffset</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Map the file <code>iFid</code> in memory for reading and writing. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iSize</em> </td><td>Size of the memmory mapped. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iFid</em> </td><td>File which will be mapped in memory. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iOffset</em> </td><td>Start point of the file to be mapped in memory.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Address of the memory map. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>MAP_FAILED</em> </td><td>in case of error </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00227">227</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> </div> </div> <a class="anchor" id="aaa8a8aa9243f8820fa63e1bff44c84dd"></a><!-- doxytag: member="sys_unix.c::SYS_Mkdir" ref="aaa8a8aa9243f8820fa63e1bff44c84dd" args="(const char *path, int perms)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_Mkdir </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>perms</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Attempts to create a directory with some permissions. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>path</em> </td><td>Path of the directory to be created. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>perms</em> </td><td>Permissions to the new directory.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Eror code. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success. </td></tr> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>An error occurred. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00061">61</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> </div> </div> <a class="anchor" id="a3eff77be19cd07b0bb7dfd0ccc2f292b"></a><!-- doxytag: member="sys_unix.c::SYS_MMapSynchronize" ref="a3eff77be19cd07b0bb7dfd0ccc2f292b" args="(void *begin, int length)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_MMapSynchronize </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>begin</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>length</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Writes the changes made in a memory map to the disk mapped file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>begin</em> </td><td>Start of the block to be written </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>length</em> </td><td>Lenght of the block to be written</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Error code. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success. </td></tr> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>An error ocurred. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00293">293</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="utils_8c_source.html#l00087">StatSynchronize()</a>.</p> </div> </div> <a class="anchor" id="aabf578a1fa970bfd0920706a9b5b0fe8"></a><!-- doxytag: member="sys_unix.c::SYS_OpenFile" ref="aabf578a1fa970bfd0920706a9b5b0fe8" args="(const char *pcFile, int flags, int mode)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_OpenFile </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pcFile</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>mode</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Opens/creates a file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pcFile</em> </td><td>path to the file. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>flags</em> </td><td>Open and read/write choices. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mode</em> </td><td>Permissions to the file.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>File descriptor. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>>0</em> </td><td>The file descriptor. </td></tr> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>An error ocurred. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00127">127</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00357">SCardEstablishContextTH()</a>, <a class="el" href="utils_8c_source.html#l00087">StatSynchronize()</a>, and <a class="el" href="utils_8c_source.html#l00163">StatSynchronizeContext()</a>.</p> </div> </div> <a class="anchor" id="af39e19e5beb78a2529f75d044609217a"></a><!-- doxytag: member="sys_unix.c::SYS_PublicMemoryMap" ref="af39e19e5beb78a2529f75d044609217a" args="(int iSize, int iFid, int iOffset)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL void* SYS_PublicMemoryMap </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>iSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>iFid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>iOffset</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Map the file <code>iFid</code> in memory only for reading. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iSize</em> </td><td>Size of the memmory mapped. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iFid</em> </td><td>File which will be mapped in memory. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iOffset</em> </td><td>Start point of the file to be mapped in memory.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Address of the memory map. </dd></dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00255">255</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00357">SCardEstablishContextTH()</a>.</p> </div> </div> <a class="anchor" id="a464b8d0b052a6e9fb3aa898b5d644619"></a><!-- doxytag: member="sys_unix.c::SYS_PublicMemoryUnmap" ref="a464b8d0b052a6e9fb3aa898b5d644619" args="(void *ptr, int iSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL void SYS_PublicMemoryUnmap </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>ptr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>iSize</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Unmap a memory segment. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>pointer returned by <a class="el" href="sys__generic_8h.html#aec318ae5b72ec6d2ead5009940d6e79d" title="Map the file iFid in memory only for reading.">SYS_PublicMemoryMap()</a> </td></tr> <tr><td valign="top"></td><td valign="top"><em>iSize</em> </td><td>size of the memory segment </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00278">278</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l03864">SCardUnload()</a>.</p> </div> </div> <a class="anchor" id="a8598711ecee3b7dbbe3cd33d24751839"></a><!-- doxytag: member="sys_unix.c::SYS_RemoveFile" ref="a8598711ecee3b7dbbe3cd33d24751839" args="(const char *pcFile)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_RemoveFile </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pcFile</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Removes a file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pcFile</em> </td><td>path to the file.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Error code. </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>Success. </td></tr> <tr><td valign="top"></td><td valign="top"><em>-1</em> </td><td>An error ocurred. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00157">157</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="winscard__msg_8c_source.html#l00478">SHMCleanupSharedSegment()</a>, and <a class="el" href="winscard__msg__srv_8c_source.html#l00133">SHMInitializeCommonSegment()</a>.</p> </div> </div> <a class="anchor" id="ac5d5594ed932c84d8dc62c404d2bde09"></a><!-- doxytag: member="sys_unix.c::SYS_Sleep" ref="ac5d5594ed932c84d8dc62c404d2bde09" args="(int iTimeVal)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_Sleep </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>iTimeVal</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Makes the current process sleep for some seconds. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iTimeVal</em> </td><td>Number of seconds to sleep. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00081">81</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="pcscdaemon_8c_source.html#l00080">SVCServiceRunLoop()</a>.</p> </div> </div> <a class="anchor" id="af101ba8774c74acd78f38d631b7d7564"></a><!-- doxytag: member="sys_unix.c::SYS_USleep" ref="af101ba8774c74acd78f38d631b7d7564" args="(int iTimeVal)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">INTERNAL int SYS_USleep </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>iTimeVal</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Makes the current process sleep for some microseconds. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iTimeVal</em> </td><td>Number of microseconds to sleep. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sys__unix_8c_source.html#l00099">99</a> of file <a class="el" href="sys__unix_8c_source.html">sys_unix.c</a>.</p> <p>Referenced by <a class="el" href="ifdwrapper_8c_source.html#l00181">IFDCloseIFD()</a>, <a class="el" href="winscard_8c_source.html#l01021">SCardBeginTransaction()</a>, <a class="el" href="winscard_8c_source.html#l00271">SCardConnect()</a>, <a class="el" href="winscard_8c_source.html#l00838">SCardDisconnect()</a>, <a class="el" href="winscard__clnt_8c_source.html#l01266">SCardEndTransaction()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l01872">SCardGetStatusChange()</a>.</p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>