18 const char*
names[
NUM_EVENTS] = {
"READ_CALLS",
"READ_BYTES",
"READ_USEC",
"READ_WOULD_BLOCK",
"SOCK_READ_CALLS",
"SOCK_READ_BYTES",
"SOCK_READ_USEC",
"SOCK_READ_WOULD_BLOCK",
"WRITE_BYTES",
"WRITE_CALLS",
"WRITE_WOULD_BLOCK",
"WRITE_USEC",
"SOCK_WRITE_BYTES",
"SOCK_WRITE_CALLS",
"SOCK_WRITE_USEC"};
26 fprintf(stderr,
"PAPI_library_init version mismatch\n");
31 printf(
"This program will listen on port 3490, and write data received to standard output AND socket\n" 32 "In the output ensure that the following identities hold:\n" 33 "READ_* == SOCK_READ_*\n" 34 "WRITE_{CALLS,BYTES} = 2 * SOCK_WRITE_{CALLS,BYTES}\n" 35 "SOCK_READ_BYTES == SOCK_WRITE_BYTES\n");
41 fprintf(stderr,
"Error getting code for %s\n",
names[e]);
49 int sockfd, n_sockfd, sin_size, len;
51 struct sockaddr_in my_addr;
52 struct sockaddr_in their_addr;
53 my_addr.sin_family = AF_INET;
54 my_addr.sin_port = htons(
PORT);
55 my_addr.sin_addr.s_addr = INADDR_ANY;
57 sockfd = socket(AF_INET, SOCK_STREAM, 0);
62 if ((bind(sockfd, (
struct sockaddr *)&my_addr,
sizeof(
struct sockaddr))) == -1) {
67 if ((n_sockfd = accept(sockfd, (
struct sockaddr *)&their_addr, &sin_size)) == -1) {
75 fprintf(stderr,
"Error in PAPI_start_counters\n");
79 while ((bytes =
read(n_sockfd,
buf, 1024)) > 0) {
88 fprintf(stderr,
"Error in PAPI_stop_counters\n");
ssize_t read(int fd, void *buf, size_t count)
void test_pass(const char *filename)
static int Events[NUM_EVENTS]
int PAPI_event_name_to_code(const char *in, int *out)
int PAPI_library_init(int version)
ssize_t write(int fd, const void *buf, size_t count)
int PAPI_stop_counters(long long *values, int array_len)
int tests_quiet(int argc, char **argv)
int PAPI_start_counters(int *events, int array_len)
static long long values[NUM_EVENTS]
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
const char * names[NUM_EVENTS]