#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(void) {
  fprintf(stderr,
          "usage:   dmascc_cfg <interface> [ options ... ]\n\n"
          "options: --show         show updated configuration\n"
          "         --frequency f  frequency of baud rate generator in Hz\n"
          "         --nrzi n       NRZ (0) or NRZI (1) encoding\n"
          "         --clocks n     clock mode (see manual page)\n"
          "         --txdelay t    transmit delay in ms\n"
          "         --txpause t    inter-packet delay in ms\n"
          "         --txtimeout t  stop transmitting packets after t ms\n"
          "         --txtail t     transmit tail in ms\n"
          "         --rtsoff t     DCD settling time in ms (after RTS off)\n"
          "         --dcdon t      DCD settling time in ms (after DCD on)\n"
          "         --dcdoff t     DCD settling time in ms (after DCD off)\n"
          "         --slottime t   slot time in ms\n"
          "         --persist n    persistence parameter (1..256)\n"
          "         --waittime t   wait time after transmit in ms\n"
          "         --dma n        "
          "DMA channel: -1 (no DMA), 0 (S5SCC/DMA only), 1, 3\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 = [885 x i8] c"usage: dmascc_cfg <interface> [ options ... ]\0A\0Aoptions: --show show updated configuration\0A --frequency f frequency of baud rate generator in Hz\0A --nrzi n NRZ (0) or NRZI (1) encoding\0A --clocks n clock mode (see manual page)\0A --txdelay t transmit delay in ms\0A --txpause t inter-packet delay in ms\0A --txtimeout t stop transmitting packets after t ms\0A --txtail t transmit tail in ms\0A --rtsoff t DCD settling time in ms (after RTS off)\0A --dcdon t DCD settling time in ms (after DCD on)\0A --dcdoff t DCD settling time in ms (after DCD off)\0A --slottime t slot time in ms\0A --persist n persistence parameter (1..256)\0A --waittime t wait time after transmit in ms\0A --dma n DMA channel: -1 (no DMA), 0 (S5SCC/DMA only), 1, 3\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([885 x i8], [885 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [885 x i8] c"usage: dmascc_cfg <interface> [ options ... ]\0A\0Aoptions: --show show updated configuration\0A --frequency f frequency of baud rate generator in Hz\0A --nrzi n NRZ (0) or NRZI (1) encoding\0A --clocks n clock mode (see manual page)\0A --txdelay t transmit delay in ms\0A --txpause t inter-packet delay in ms\0A --txtimeout t stop transmitting packets after t ms\0A --txtail t transmit tail in ms\0A --rtsoff t DCD settling time in ms (after RTS off)\0A --dcdon t DCD settling time in ms (after DCD on)\0A --dcdoff t DCD settling time in ms (after DCD off)\0A --slottime t slot time in ms\0A --persist n persistence parameter (1..256)\0A --waittime t wait time after transmit in ms\0A --dma n DMA channel: -1 (no DMA), 0 (S5SCC/DMA only), 1, 3\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([885 x i8], [885 x i8]* @.str, i64 0, i64 0))
ret void
}