sys_unix.c File Reference

This handles abstract system level calls. More...

#include "config.h"
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <sys/file.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <time.h>
#include "misc.h"
#include "sys_generic.h"
#include "debuglog.h"

Go to the source code of this file.

Functions

INTERNAL int SYS_Initialize (void)
 Make system wide initialization.
INTERNAL int SYS_Mkdir (char *path, int perms)
 Attempts to create a directory with some permissions.
INTERNAL int SYS_GetPID (void)
 Gets the running process's ID.
INTERNAL int SYS_Sleep (int iTimeVal)
 Makes the current process sleep for some seconds.
INTERNAL int SYS_USleep (int iTimeVal)
 Makes the current process sleep for some microseconds.
INTERNAL int SYS_OpenFile (char *pcFile, int flags, int mode)
 Opens/creates a file.
INTERNAL int SYS_CloseFile (int iHandle)
 Opens/creates a file.
INTERNAL int SYS_RemoveFile (char *pcFile)
 Removes a file.
INTERNAL int SYS_Chmod (const char *path, int mode)
INTERNAL int SYS_Chdir (const char *path)
INTERNAL int SYS_Mkfifo (const char *path, int mode)
INTERNAL int SYS_Mknod (const char *path, int mode, int dev)
INTERNAL int SYS_GetUID (void)
INTERNAL int SYS_GetGID (void)
INTERNAL int SYS_Chown (const char *fname, int uid, int gid)
INTERNAL int SYS_ChangePermissions (char *pcFile, int mode)
INTERNAL int SYS_LockFile (int iHandle)
 Makes a non-blocking request to lock a file exclusively.
INTERNAL int SYS_LockAndBlock (int iHandle)
 Makes a blocking request to lock a file exclusively.
INTERNAL int SYS_UnlockFile (int iHandle)
 Unlocks the file.
INTERNAL int SYS_SeekFile (int iHandle, int iSeekLength)
INTERNAL int SYS_ReadFile (int iHandle, char *pcBuffer, int iLength)
INTERNAL int SYS_WriteFile (int iHandle, char *pcBuffer, int iLength)
INTERNAL int SYS_GetPageSize (void)
 Gets the memory page size.
INTERNAL void * SYS_MemoryMap (int iSize, int iFid, int iOffset)
 Map the file iFid in memory for reading and writing.
INTERNAL void * SYS_PublicMemoryMap (int iSize, int iFid, int iOffset)
 Map the file iFid in memory only for reading.
INTERNAL int SYS_MMapSynchronize (void *begin, int length)
 Writes the changes made in a memory map to the disk mapped file.
INTERNAL int SYS_Fork (void)
INTERNAL int SYS_Daemon (int nochdir, int noclose)
 put the process to run in the background.
INTERNAL int SYS_Wait (int iPid, int iWait)
INTERNAL int SYS_Stat (char *pcFile, struct stat *psStatus)
INTERNAL int SYS_Fstat (int iFd)
INTERNAL int SYS_RandomInt (int fStart, int fEnd)
INTERNAL int SYS_GetSeed (void)
INTERNAL void SYS_Exit (int iRetVal)
INTERNAL int SYS_Rmdir (char *pcFile)
INTERNAL int SYS_Unlink (char *pcFile)


Detailed Description

This handles abstract system level calls.

Definition in file sys_unix.c.


Function Documentation

INTERNAL int SYS_CloseFile int  iHandle  ) 
 

Opens/creates a file.

Parameters:
[in] iHandle File descriptor.
Returns:
Error code.
Return values:
0 Success.
-1 An error ocurred.

Definition at line 138 of file sys_unix.c.

Referenced by SCardEstablishContextTH(), SCardUnload(), SHMCleanupSharedSegment(), SHMClientCloseSession(), SHMClientSetupSession(), SHMProcessCommonChannelRequest(), SHMProcessEventsContext(), and SYS_Daemon().

INTERNAL int SYS_Daemon int  nochdir,
int  noclose
 

put the process to run in the background.

Parameters:
[in] nochdir if zero, change the current directory to "/".
[in] noclose if zero, redirect standard imput/output/error to /dev/nulll.
Returns:
error code.
Return values:
0 success.
-1 an error ocurred.

Definition at line 384 of file sys_unix.c.

References Log2, SYS_Chdir(), SYS_CloseFile(), and SYS_Fork().

Referenced by main().

INTERNAL int SYS_GetPageSize void   ) 
 

Gets the memory page size.

The page size is used when calling the SYS_MemoryMap() and SYS_PublicMemoryMap() functions.

Returns:
Number of bytes per page.

Definition at line 297 of file sys_unix.c.

Referenced by EHInitializeEventStructures(), EHStatusHandlerThread(), and SCardEstablishContextTH().

INTERNAL int SYS_GetPID void   ) 
 

Gets the running process's ID.

Returns:
PID.

Definition at line 71 of file sys_unix.c.

INTERNAL int SYS_Initialize void   ) 
 

Make system wide initialization.

Returns:
Eror code.
Return values:
0 Success.

Definition at line 43 of file sys_unix.c.

Referenced by SCardEstablishContextTH().

INTERNAL int SYS_LockAndBlock int  iHandle  ) 
 

Makes a blocking request to lock a file exclusively.

Parameters:
[in] iHandle File descriptor.
Returns:
Error code.
Return values:
0 Success.
-1 An error ocurred.

Definition at line 231 of file sys_unix.c.

INTERNAL int SYS_LockFile int  iHandle  ) 
 

Makes a non-blocking request to lock a file exclusively.

Parameters:
[in] iHandle File descriptor.
Returns:
Error code.
Return values:
0 Success.
-1 An error ocurred.

Definition at line 206 of file sys_unix.c.

INTERNAL void* SYS_MemoryMap int  iSize,
int  iFid,
int  iOffset
 

Map the file iFid in memory for reading and writing.

Parameters:
[in] iSize Size of the memmory mapped.
[in] iFid File which will be mapped in memory.
[in] iOffset Start point of the file to be mapped in memory.
Returns:
Address of the memory map.

Definition at line 311 of file sys_unix.c.

Referenced by EHInitializeEventStructures().

INTERNAL int SYS_Mkdir char *  path,
int  perms
 

Attempts to create a directory with some permissions.

Parameters:
[in] path Path of the directory to be created.
[in] perms Permissions to the new directory.
Returns:
Eror code.
Return values:
0 Success.
-1 An error occurred.

Definition at line 61 of file sys_unix.c.

Referenced by main().

INTERNAL int SYS_MMapSynchronize void *  begin,
int  length
 

Writes the changes made in a memory map to the disk mapped file.

Parameters:
[in] begin Start of the block to be written
[in] length Lenght of the block to be written
Returns:
Error code.
Return values:
0 Success.
-1 An error ocurred.

Definition at line 359 of file sys_unix.c.

Referenced by EHStatusHandlerThread().

INTERNAL int SYS_OpenFile char *  pcFile,
int  flags,
int  mode
 

Opens/creates a file.

Parameters:
[in] pcFile path to the file.
[in] flags Open and read/write choices.
[in] mode Permissions to the file.
Returns:
File descriptor.
Return values:
>0 The file descriptor.
-1 An error ocurred.

Definition at line 124 of file sys_unix.c.

Referenced by EHInitializeEventStructures(), and SCardEstablishContextTH().

INTERNAL void* SYS_PublicMemoryMap int  iSize,
int  iFid,
int  iOffset
 

Map the file iFid in memory only for reading.

Parameters:
[in] iSize Size of the memmory mapped.
[in] iFid File which will be mapped in memory.
[in] iOffset Start point of the file to be mapped in memory.
Returns:
Address of the memory map.

Definition at line 339 of file sys_unix.c.

Referenced by SCardEstablishContextTH().

INTERNAL int SYS_RemoveFile char *  pcFile  ) 
 

Removes a file.

Parameters:
[in] pcFile path to the file.
Returns:
Error code.
Return values:
0 Success.
-1 An error ocurred.

Definition at line 152 of file sys_unix.c.

Referenced by EHInitializeEventStructures().

INTERNAL int SYS_Sleep int  iTimeVal  ) 
 

Makes the current process sleep for some seconds.

Parameters:
[in] iTimeVal Number of seconds to sleep.

Definition at line 81 of file sys_unix.c.

Referenced by SVCServiceRunLoop().

INTERNAL int SYS_UnlockFile int  iHandle  ) 
 

Unlocks the file.

Parameters:
[in] iHandle File descriptor.
Returns:
Error code.
Return values:
0 Success.
-1 An error ocurred.

Definition at line 256 of file sys_unix.c.

INTERNAL int SYS_USleep int  iTimeVal  ) 
 

Makes the current process sleep for some microseconds.

Parameters:
[in] iTimeVal Number of microseconds to sleep.

Definition at line 99 of file sys_unix.c.

Referenced by EHDestroyEventHandler(), EHStatusHandlerThread(), SCardConnect(), SCardDisconnect(), SCardDisconnectTH(), SCardEndTransactionTH(), and SCardReconnect().


Generated on Fri Mar 24 04:30:06 2006 for pcsc-lite by  doxygen 1.4.6