You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
787 B
42 lines
787 B
5 years ago
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
#define CPU_CYCS 2100
|
||
|
#define MAX_BUF (1024*1024) //1m
|
||
|
|
||
|
#define ITERS_15US 125500
|
||
|
#define MULTIPLE 5
|
||
|
|
||
|
#define SPIN_ITERS (ITERS_15US*MULTIPLE)
|
||
|
|
||
|
__attribute__((optnone)) static void
|
||
|
wrk(void)
|
||
|
{
|
||
|
unsigned int spin = 0;
|
||
|
|
||
|
while (spin < SPIN_ITERS) {
|
||
|
//__asm__ __volatile__("nop": : :"memory");
|
||
|
spin++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//__attribute__((optnone)) int
|
||
|
int
|
||
|
main(void)
|
||
|
{
|
||
|
char *d = malloc(MAX_BUF + 1);
|
||
|
int r = read(0, d, MAX_BUF);
|
||
|
|
||
|
// unsigned long long st = rdtsc(), en = 0;
|
||
|
// wrk();
|
||
|
// en = rdtsc();
|
||
|
|
||
|
// if (r <= 0) printf("%llu\n", en > st ? (en - st)/CPU_CYCS : -1);
|
||
|
if (r < 0) printf("E\n");
|
||
|
else if (r == 0) printf("hello\n");
|
||
|
else write(1, d, r);
|
||
|
|
||
|
return 0;
|
||
|
}
|