16main(
int argc,
char *argv[]) {
18 const char*
names[
NUM_EVENTS] = {
"RECV_CALLS",
"RECV_BYTES",
"RECV_USEC",
"RECV_ERR",
"RECV_INTERRUPTED",
"RECV_WOULD_BLOCK"};
26 fprintf(
stderr,
"PAPI_library_init version mismatch\n");
32 fprintf(
stderr,
"Error creating event set\n");
36 if (!
TESTS_QUIET) printf(
"This program will listen on port 3490, and write data received to standard output\n");
43 fprintf(
stderr,
"Error getting code for %s\n",
names[e]);
48 fprintf(
stderr,
"Error adding %s to event set\n",
names[e]);
56 int sockfd, n_sockfd, sin_size, len;
57 char *host_addr, *recv_msg;
58 struct sockaddr_in my_addr;
59 struct sockaddr_in their_addr;
60 my_addr.sin_family = AF_INET;
61 my_addr.sin_port = htons(
PORT);
62 my_addr.sin_addr.s_addr = INADDR_ANY;
64 sockfd = socket(AF_INET, SOCK_STREAM, 0);
69 if ((bind(sockfd, (
struct sockaddr *)&my_addr,
sizeof(
struct sockaddr))) == -1) {
74 if ((n_sockfd = accept(sockfd, (
struct sockaddr *)&their_addr, &sin_size)) == -1) {
82 fprintf(
stderr,
"Error in PAPI_start\n");
86 while ((bytes = recv(n_sockfd,
buf, 1024, 0)) > 0) {
94 fprintf(
stderr,
"Error in PAPI_stop\n");
ssize_t write(int fd, const void *buf, size_t count)
const char * names[NUM_EVENTS]
add PAPI preset or native hardware event to an event set
Create a new empty PAPI EventSet.
Convert a name to a numeric hardware event code.
initialize the PAPI library.
Start counting hardware events in an event set.
Stop counting hardware events in an event set.
volatile int buf[CACHE_FLUSH_BUFFER_SIZE_INTS]
static long long values[NUM_EVENTS]
Return codes and api definitions.
int tests_quiet(int argc, char **argv)
void PAPI_NORETURN test_pass(const char *filename)