#undef CLOCK_PROCESS_CPUTIME_ID
#endif
-
/**
* @mainpage Escape
* @image html e_big.png
extern "C" {
#endif
- /* Nothing to see here */
+/* Nothing to see here */
#ifdef __cplusplus
}
p2 = p1 + (length - 1);
if (*p2 == '/')
{
- while (*p2 == '/')
- p2--;
+ while (*p2 == '/')
+ p2--;
}
*(p2 + 1) = '\0';
p2 = p1 + (length - 1);
if (*p2 == '/')
{
- while (*p2 == '/')
- p2--;
+ while (*p2 == '/')
+ p2--;
}
*(p2 + 1) = '\0';
return _escape_dirname_buf;
}
+
#ifndef __ESCAPE_LIBGEN_H__
#define __ESCAPE_LIBGEN_H__
-
/**
* @file escape_libgen.h
* @brief The file that provides functions ported from Unix in libgen.h.
#endif
#define dirname(p) escape_dirname(p)
-
/**
* @}
*/
-
#endif /* __ESCAPE_LIBGEN_H__ */
/***** API *****/
-
void *
mmap(void *addr __UNUSED__,
size_t len,
int fd,
off_t offset)
{
- void *data;
- size_t size;
+ void *data;
+ size_t size;
- data = malloc(len);
- if (!data)
- {
- fprintf (stderr, "[Escape] [mmap] malloc failed\n");
- return MAP_FAILED;
- }
+ data = malloc(len);
+ if (!data)
+ {
+ fprintf (stderr, "[Escape] [mmap] malloc failed\n");
+ return MAP_FAILED;
+ }
- size = read(fd, data, len);
- if (size != len)
- {
- fprintf (stderr, "[Escape] [mmap] read failed\n");
- free(data);
- return MAP_FAILED;
- }
+ size = read(fd, data, len);
+ if (size != len)
+ {
+ fprintf (stderr, "[Escape] [mmap] read failed\n");
+ free(data);
+ return MAP_FAILED;
+ }
- if (lseek(fd, -len, SEEK_CUR) == -1)
- {
- fprintf (stderr, "[Escape] [mmap] lseek failed\n");
- free(data);
- return MAP_FAILED;
- }
+ if (lseek(fd, -len, SEEK_CUR) == -1)
+ {
+ fprintf (stderr, "[Escape] [mmap] lseek failed\n");
+ free(data);
+ return MAP_FAILED;
+ }
- return data;
+ return data;
}
int
munmap(void *addr,
size_t len __UNUSED__)
{
- if (addr && (addr != MAP_FAILED))
- free(addr);
+ if (addr && (addr != MAP_FAILED))
+ free(addr);
- return 0;
+ return 0;
}
-
-int madvise(void *addr __UNUSED__,
- size_t length __UNUSED__,
- int advice __UNUSED__)
+int
+madvise(void *addr __UNUSED__,
+ size_t length __UNUSED__,
+ int advice __UNUSED__)
{
- return 0;
+ return 0;
}
+
#include <errno.h>
#endif /* HAVE_ERRNO_H */
-#include <sys/types.h> /* See NOTES */
+#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <net/socket.h>
#include <netinet/in.h>
#include <libiberty.h>
#include <sys/stat.h>
-
#include "Escape.h"
-char *escape_realpath(const char *path, char *resolved_path)
+char *
+escape_realpath(const char *path, char *resolved_path)
{
- char *real = lrealpath (path);
-
- if (real)
- {
- if (resolved_path)
- {
- memcpy (resolved_path, real, PATH_MAX);
- free (real);
- return resolved_path;
- }
- else
- {
- return real;
- }
- }
-
- return NULL;
+ char *real = lrealpath (path);
+
+ if (real)
+ {
+ if (resolved_path)
+ {
+ memcpy (resolved_path, real, PATH_MAX);
+ free (real);
+ return resolved_path;
+ }
+ else
+ {
+ return real;
+ }
+ }
+
+ return NULL;
}
-
-
-int escape_access(const char *pathname, int mode)
+int
+escape_access(const char *pathname, int mode)
{
- struct stat stat_buf;
-
- if (stat(pathname, &stat_buf) != 0)
- return -1;
-
- if (mode == F_OK)
- return 0;
- if (mode == R_OK) {
- if (stat_buf.st_mode & S_IRUSR)
- return 0;
- errno = EACCES;
- return -1;
- }
- if (mode == W_OK) {
- if (stat_buf.st_mode & S_IWUSR)
- return 0;
- errno = EROFS;
- return -1;
- }
- if (mode == X_OK) {
- if (stat_buf.st_mode & S_IXUSR)
- return 0;
- errno = EACCES;
- return -1;
- }
-
- return 0;
+ struct stat stat_buf;
+
+ if (stat(pathname, &stat_buf) != 0)
+ return -1;
+
+ if (mode == F_OK)
+ return 0;
+ if (mode == R_OK)
+ {
+ if (stat_buf.st_mode & S_IRUSR)
+ return 0;
+ errno = EACCES;
+ return -1;
+ }
+ if (mode == W_OK)
+ {
+ if (stat_buf.st_mode & S_IWUSR)
+ return 0;
+ errno = EROFS;
+ return -1;
+ }
+ if (mode == X_OK)
+ {
+ if (stat_buf.st_mode & S_IXUSR)
+ return 0;
+ errno = EACCES;
+ return -1;
+ }
+
+ return 0;
}
-EAPI ssize_t escape_readlink(const char *path,
- char * buf,
- size_t bufsize)
+EAPI ssize_t
+escape_readlink(const char *path,
+ char *buf,
+ size_t bufsize)
{
- errno = EINVAL;
- return -1;
+ errno = EINVAL;
+ return -1;
}
-EAPI int escape_symlink(const char *path1, const char *path2)
+EAPI int
+escape_symlink(const char *path1, const char *path2)
{
- errno = EINVAL;
- return -1;
+ errno = EINVAL;
+ return -1;
}
/*
escape_pipe(int *fds)
{
struct sockaddr_in saddr;
- int temp;
- int socket1 = -1;
- int socket2 = -1;
- fd_set read_set;
- fd_set write_set;
- int len;
+ int temp;
+ int socket1 = -1;
+ int socket2 = -1;
+ fd_set read_set;
+ fd_set write_set;
+ int len;
temp = socket (AF_INET, SOCK_STREAM, 0);
if (socket1 == -1)
goto out0;
-
- if ((connect (socket1, (struct sockaddr *)&saddr, len) == -1) &&
+ if ((connect (socket1, (struct sockaddr *)&saddr, len) == -1) &&
(errno != EAGAIN))
goto out1;
if (!FD_ISSET (temp, &read_set))
goto out1;
- socket2 = accept (temp, (struct sockaddr *) &saddr, &len);
+ socket2 = accept (temp, (struct sockaddr *)&saddr, &len);
if (socket2 == -1)
goto out1;
return 0;
- out2:
+out2:
closesocket (socket2);
- out1:
+out1:
closesocket (socket1);
- out0:
+out0:
closesocket (temp);
fds[0] = -1;
}
#undef access
-int access(const char *pathname, int mode)
+int
+access(const char *pathname, int mode)
{
- return escape_access (pathname, mode);
+ return escape_access (pathname, mode);
}
+
#ifndef __ESCAPE_UNISTD_H__
#define __ESCAPE_UNISTD_H__
-
/**
* @file escape_unistd.h
* @brief The file that provides functions ported from Unix in unistd.h.
#include <sys/syslimits.h>
-
/* Path function */
/**
* @brief return the canonicalized absolute pathname
#endif
#define realpath escape_realpath
-EAPI ssize_t escape_readlink(const char * path,
- char * buf,
- size_t bufsize);
+EAPI ssize_t
+escape_readlink(const char *path,
+ char *buf,
+ size_t bufsize);
#ifdef readlink
#undef readlink
#endif
#define readlink escape_readlink
-EAPI int escape_symlink(const char *path1, const char *path2);
+EAPI int
+escape_symlink(const char *path1, const char *path2);
#ifdef symlink
#undef symlink
#endif
#define symlink escape_symlink
-
/**
* @brief check real user's permissions for a file
*
* and execute permissions, respectively.
*
*/
-EAPI int escape_access(const char *pathname, int mode);
+EAPI int
+escape_access(const char *pathname, int mode);
#ifdef access
#undef access
#endif
*
* Conformity: Not applicable.
*/
-EAPI int escape_pipe(int *fds);
+EAPI int
+escape_pipe(int *fds);
/**
* @def pipe(fds)
*/
#define pipe(fds) escape_pipe(fds)
-
//#define sync()
-
/**
* @}
*/
-
#endif /* __ESCAPE_UNISTD_H__ */
#include <Escape.h>
-
#ifdef __cplusplus
extern "C" {
#endif
-
/**
* @def PROT_NONE
* Data can not be accessed.
#define MAP_PRIVATE 0x0002
#define MAP_FIXED 0x0010
-#define MAP_FAILED ((void *)-1)
-
+#define MAP_FAILED ((void *)-1)
/**
* @file mman.h
*
* @ingroup Mman
*/
-EAPI void *mmap(void *addr,
+EAPI void *mmap(void *addr,
size_t len,
- int prot,
- int flags,
- int fd,
- off_t offset);
+ int prot,
+ int flags,
+ int fd,
+ off_t offset);
/**
* Unmaps a mapped view of a file from the calling process's
*
* @ingroup Mman
*/
-EAPI int munmap(void *addr,
- size_t len);
-
+EAPI int
+munmap(void *addr,
+ size_t len);
# define MADV_NORMAL 0 /* No further special treatment. */
# define MADV_RANDOM 1 /* Expect random page references. */
*
* @ingroup Mman
*/
-EAPI int madvise(void *addr,
- size_t length,
- int advice);
-
+EAPI int
+madvise(void *addr,
+ size_t length,
+ int advice);
#ifdef __cplusplus
}
#endif
-
#endif /* __ESCAPE_SYS_MMAN_H__ */