| /* ----> DO NOT REMOVE THE FOLLOWING NOTICE <---- | |
| Copyright (c) 2014-2015 Datalight, Inc. | |
| All Rights Reserved Worldwide. | |
| This program is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; use version 2 of the License. | |
| This program is distributed in the hope that it will be useful, | |
| but "AS-IS," WITHOUT ANY WARRANTY; without even the implied warranty | |
| of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License along | |
| with this program; if not, write to the Free Software Foundation, Inc., | |
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
| */ | |
| /* Businesses and individuals that for commercial or other reasons cannot | |
| comply with the terms of the GPLv2 license may obtain a commercial license | |
| before incorporating Reliance Edge into proprietary software for | |
| distribution in any form. Visit http://www.datalight.com/reliance-edge for | |
| more information. | |
| */ | |
| /** @file | |
| @brief Defines macros which make the Reliance Edge POSIX-like API look more | |
| like the actual POSIX API. | |
| This file is intended for porting POSIX file system tests; it is not | |
| intended for application use. | |
| */ | |
| #ifndef REDPOSIXCOMPAT_H | |
| #define REDPOSIXCOMPAT_H | |
| #ifndef assert | |
| #define assert(x) REDASSERT(x) | |
| #endif | |
| #undef O_RDONLY | |
| #undef O_WRONLY | |
| #undef O_RDWR | |
| #undef O_APPEND | |
| #undef O_CREAT | |
| #undef O_EXCL | |
| #undef O_TRUNC | |
| #define O_RDONLY RED_O_RDONLY | |
| #define O_WRONLY RED_O_WRONLY | |
| #define O_RDWR RED_O_RDWR | |
| #define O_APPEND RED_O_APPEND | |
| #define O_CREAT RED_O_CREAT | |
| #define O_EXCL RED_O_EXCL | |
| #define O_TRUNC RED_O_TRUNC | |
| #undef SEEK_SET | |
| #undef SEEK_CUR | |
| #undef SEEK_END | |
| #define SEEK_SET RED_SEEK_SET | |
| #define SEEK_CUR RED_SEEK_CUR | |
| #define SEEK_END RED_SEEK_END | |
| /* Old-fashioned Linux seek names. | |
| */ | |
| #undef L_SET | |
| #undef L_INCR | |
| #undef L_XTND | |
| #define L_SET SEEK_SET | |
| #define L_INCR SEEK_CUR | |
| #define L_XTND SEEK_END | |
| #undef S_IFDIR | |
| #undef S_IFREG | |
| #undef S_ISDIR | |
| #undef S_ISREG | |
| #define S_IFDIR RED_S_IFDIR | |
| #define S_IFREG RED_S_IFREG | |
| #define S_ISDIR(m) RED_S_ISDIR(m) | |
| #define S_ISREG(m) RED_S_ISREG(m) | |
| #undef ST_RDONLY | |
| #undef ST_NOSUID | |
| #define ST_RDONLY RED_ST_RDONLY | |
| #define ST_NOSUID RED_ST_NOSUID | |
| #undef open | |
| #undef creat | |
| #undef unlink | |
| #undef mkdir | |
| #undef rmdir | |
| #undef rename | |
| #undef link | |
| #undef close | |
| #undef read | |
| #undef write | |
| #undef fsync | |
| #undef fdatasync | |
| #undef lseek | |
| #undef ftruncate | |
| #undef fstat | |
| #undef opendir | |
| #undef readdir | |
| #undef rewinddir | |
| #undef closedir | |
| #define open(path, oflag) red_open(path, oflag) | |
| #define creat(path, mode) open(path, O_WRONLY|O_CREAT|O_TRUNC) | |
| #define unlink(path) red_unlink(path) | |
| #define mkdir(path) red_mkdir(path) | |
| #define rmdir(path) red_rmdir(path) | |
| #define rename(old, new) red_rename(old, new) | |
| #define link(path, hardlink) red_link(path, hardlink) | |
| #define close(fd) red_close(fd) | |
| #define read(fd, buf, len) red_read(fd, buf, len) | |
| #define write(fd, buf, len) red_write(fd, buf, len) | |
| #define fsync(fd) red_fsync(fd) | |
| #define fdatasync(fd) fsync(fd) | |
| #define lseek(fd, offset, whence) red_lseek(fd, offset, whence) | |
| #define lseek64(fd, offset, whence) lseek(fd, offset, whence) | |
| #define ftruncate(fd, size) red_ftruncate(fd, size) | |
| #define fstat(fd, stat) red_fstat(fd, stat) | |
| #define fstat64(fd, stat) fstat(fd, stat) | |
| #define opendir(path) red_opendir(path) | |
| #define readdir(dirp) red_readdir(dirp) | |
| #define readdir64(dirp) readdir(dirp) | |
| #define rewinddir(dirp) red_rewinddir(dirp) | |
| #define closedir(dirp) red_closedir(dirp) | |
| #undef DIR | |
| #define DIR REDDIR | |
| #undef errno | |
| #define errno (*(int *)red_errnoptr()) | |
| #undef memcpy | |
| #undef memmove | |
| #undef memset | |
| #undef strlen | |
| #undef strncmp | |
| #undef strcmp | |
| #undef strncpy | |
| #define memcpy(d, s, l) RedMemCpy(d, s, (uint32_t)(l)) | |
| #define memmove(d, s, l) RedMemMove(d, s, (uint32_t)(l)) | |
| #define memset(d, c, l) RedMemSet(d, (uint8_t)(c), (uint32_t)(l)) | |
| #define strlen(s) RedStrLen(s) | |
| #define strncmp(s1, s2, l) RedStrNCmp(s1, s2, (uint32_t)(l)) | |
| #define strcmp(s1, s2) RedStrCmp(s1, s2) | |
| #define strncpy(d, s, l) RedStrNCpy(d, s, (uint32_t)(l)) | |
| #endif | |