#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ EXIT_FAILURE;
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage(void) {
  fprintf(
      stderr,
      "Usage: vsock_test [--help] [--control-host=<host>] "
      "--control-port=<port> --mode=client|server --peer-cid=<cid> [--list] "
      "[--skip=<test_id>]\n"
      "\n"
      "  Server: vsock_test --control-port=1234 --mode=server --peer-cid=3\n"
      "  Client: vsock_test --control-host=192.168.0.1 --control-port=1234 "
      "--mode=client --peer-cid=2\n"
      "\n"
      "Run vsock.ko tests.  Must be launched in both guest\n"
      "and host.  One side must use --mode=client and\n"
      "the other side must use --mode=server.\n"
      "\n"
      "A TCP control socket connection is used to coordinate tests\n"
      "between the client and the server.  The server requires a\n"
      "listen address and the client requires an address to\n"
      "connect to.\n"
      "\n"
      "The CID of the other side must be given with --peer-cid=<cid>.\n"
      "\n"
      "Options:\n"
      "  --help                 This help message\n"
      "  --control-host <host>  Server IP address to connect to\n"
      "  --control-port <port>  Server port to listen on/connect to\n"
      "  --mode client|server   Server or client mode\n"
      "  --peer-cid <cid>       CID of the other side\n"
      "  --list                 List of tests that will be executed\n"
      "  --skip <test_id>       Test ID to skip;\n"
      "                         use multiple --skip options to skip more "
      "tests\n");
  exit(EXIT_FAILURE);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2e98(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
mov    0x2eb8(%rip),%rax
mov    (%rax),%edi
lea    0xecf(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2e9b(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1131 x i8] c"Usage: vsock_test [--help] [--control-host=<host>] --control-port=<port> --mode=client|server --peer-cid=<cid> [--list] [--skip=<test_id>]\0A\0A Server: vsock_test --control-port=1234 --mode=server --peer-cid=3\0A Client: vsock_test --control-host=192.168.0.1 --control-port=1234 --mode=client --peer-cid=2\0A\0ARun vsock.ko tests. Must be launched in both guest\0Aand host. One side must use --mode=client and\0Athe other side must use --mode=server.\0A\0AA TCP control socket connection is used to coordinate tests\0Abetween the client and the server. The server requires a\0Alisten address and the client requires an address to\0Aconnect to.\0A\0AThe CID of the other side must be given with --peer-cid=<cid>.\0A\0AOptions:\0A --help This help message\0A --control-host <host> Server IP address to connect to\0A --control-port <port> Server port to listen on/connect to\0A --mode client|server Server or client mode\0A --peer-cid <cid> CID of the other side\0A --list List of tests that will be executed\0A --skip <test_id> Test ID to skip;\0A use multiple --skip options to skip more tests\0A\00"
@EXIT_FAILURE = global i32 0
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1131 x i8], [1131 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @EXIT_FAILURE
%4 = call i32 @exit(i32 %3)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1131 x i8] c"Usage: vsock_test [--help] [--control-host=<host>] --control-port=<port> --mode=client|server --peer-cid=<cid> [--list] [--skip=<test_id>]\0A\0A Server: vsock_test --control-port=1234 --mode=server --peer-cid=3\0A Client: vsock_test --control-host=192.168.0.1 --control-port=1234 --mode=client --peer-cid=2\0A\0ARun vsock.ko tests. Must be launched in both guest\0Aand host. One side must use --mode=client and\0Athe other side must use --mode=server.\0A\0AA TCP control socket connection is used to coordinate tests\0Abetween the client and the server. The server requires a\0Alisten address and the client requires an address to\0Aconnect to.\0A\0AThe CID of the other side must be given with --peer-cid=<cid>.\0A\0AOptions:\0A --help This help message\0A --control-host <host> Server IP address to connect to\0A --control-port <port> Server port to listen on/connect to\0A --mode client|server Server or client mode\0A --peer-cid <cid> CID of the other side\0A --list List of tests that will be executed\0A --skip <test_id> Test ID to skip;\0A use multiple --skip options to skip more tests\0A\00"
@EXIT_FAILURE = global i32 0
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1131 x i8], [1131 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @EXIT_FAILURE
%4 = tail call i32 @exit(i32 %3)
unreachable
}