int __wrap_open64(const char *path, int oflag, ...) { int ret = sys_rtdm_open(path, oflag); if (ret >= 0) return ret; #ifdef HAVE_OPEN64 else if (ret == -ENODEV || ret == -ENOSYS) { va_list ap; va_start(ap, oflag); ret = __real_open64(path, oflag, va_arg(ap, mode_t)); va_end(ap); if (ret >= __pse51_rtdm_fd_start) { __real_close(ret); errno = EMFILE; ret = -1; } #endif } else { errno = -ret; ret = -1; } return ret; }
/******** the wrap calls ********/ int __wrap_open64(const char *path, int oflag, ... ) { int ret_val; struct timeval start, end; /* check whether there is the 3rd arg */ if (oflag & O_CREAT) { va_list mode_arg; va_start(mode_arg, oflag); int mode = va_arg(mode_arg, int); va_end(mode_arg); gettimeofday(&start, NULL); ret_val = __real_open64(path, oflag, mode); gettimeofday(&end, NULL); } else {