#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*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage() {
  fprintf(stderr,
          "\n"
          "Usage: sudo pigpiod [OPTION] ...\n"
          "   -a value, DMA mode, 0=AUTO, 1=PMAP, 2=MBOX,   default AUTO\n"
          "   -b value, gpio sample buffer in milliseconds, default 120\n"
          "   -c value, library internal settings,          default 0\n"
          "   -d value, primary DMA channel, 0-14,          default 14\n"
          "   -e value, secondary DMA channel, 0-6,         default 5\n"
          "   -f,       disable fifo interface,             default enabled\n"
          "   -k,       disable socket interface,           default enabled\n"
          "   -p value, socket port, 1024-32000,            default 8888\n"
          "   -s value, sample rate, 1, 2, 4, 5, 8, or 10,  default 5\n"
          "   -t value, clock peripheral, 0=PWM 1=PCM,      default PCM\n"
          "   -x mask,  gpios which may be updated,         default board user "
          "gpios\n"
          "EXAMPLE\n"
          "sudo pigpiod -s 2 -b 200 -f\n"
          "  Set a sample rate of 2 microseconds with a 200 millisecond\n"
          "  buffer.  Disable the fifo interface.\n"
          "\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [859 x i8] c"\0AUsage: sudo pigpiod [OPTION] ...\0A -a value, DMA mode, 0=AUTO, 1=PMAP, 2=MBOX, default AUTO\0A -b value, gpio sample buffer in milliseconds, default 120\0A -c value, library internal settings, default 0\0A -d value, primary DMA channel, 0-14, default 14\0A -e value, secondary DMA channel, 0-6, default 5\0A -f, disable fifo interface, default enabled\0A -k, disable socket interface, default enabled\0A -p value, socket port, 1024-32000, default 8888\0A -s value, sample rate, 1, 2, 4, 5, 8, or 10, default 5\0A -t value, clock peripheral, 0=PWM 1=PCM, default PCM\0A -x mask, gpios which may be updated, default board user gpios\0AEXAMPLE\0Asudo pigpiod -s 2 -b 200 -f\0A Set a sample rate of 2 microseconds with a 200 millisecond\0A buffer. Disable the fifo interface.\0A\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([859 x i8], [859 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [859 x i8] c"\0AUsage: sudo pigpiod [OPTION] ...\0A -a value, DMA mode, 0=AUTO, 1=PMAP, 2=MBOX, default AUTO\0A -b value, gpio sample buffer in milliseconds, default 120\0A -c value, library internal settings, default 0\0A -d value, primary DMA channel, 0-14, default 14\0A -e value, secondary DMA channel, 0-6, default 5\0A -f, disable fifo interface, default enabled\0A -k, disable socket interface, default enabled\0A -p value, socket port, 1024-32000, default 8888\0A -s value, sample rate, 1, 2, 4, 5, 8, or 10, default 5\0A -t value, clock peripheral, 0=PWM 1=PCM, default PCM\0A -x mask, gpios which may be updated, default board user gpios\0AEXAMPLE\0Asudo pigpiod -s 2 -b 200 -f\0A Set a sample rate of 2 microseconds with a 200 millisecond\0A buffer. Disable the fifo interface.\0A\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([859 x i8], [859 x i8]* @.str, i64 0, i64 0))
ret void
}