i = NR*BUFSIZE;
off = 0;
do {
- int ret = splice(fd, &off, pipefd[1], NULL, min(i, BUFSIZE), SPLICE_F_NONBLOCK);
+ int ret = ssplice(fd, &off, pipefd[1], NULL, min(i, BUFSIZE), SPLICE_F_NONBLOCK);
if (ret <= 0)
return error("splice-pipe-in");
i -= ret;
while (ret > 0) {
int flags = i ? SPLICE_F_MORE : 0;
- int written = splice(pipefd[0], NULL, sk, NULL, ret, flags);
+ int written = ssplice(pipefd[0], NULL, sk, NULL, ret, flags);
if (written <= 0)
return error("splice-pipe-out");
ret -= written;
int flags = BUFSIZE < i ? SPLICE_F_MORE : 0;
int ret;
- ret = splice(fd, &off, sk, NULL, min(i, BUFSIZE), flags);
+ ret = ssplice(fd, &off, sk, NULL, min(i, BUFSIZE), flags);
if (ret <= 0)
return error("splice");
do { \
__asm__ __volatile__("rdtsc" : "=A" (val)); \
} while (0)
+#elif defined(__x86_64__)
+#define rdtscll(val) \
+do { \
+ uint64_t lo, hi; \
+ __asm__ __volatile__("rdtsc" : "=a" (lo), "=d" (hi)); \
+ (val) = (hi << 32) | lo; \
+} while (0)
#if 0
#elif defined(__ia64__)
#define rdtscll(val) \