#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*/ printf(char *);
void sniff_help() {
  printf(
      "/********************* module: sniff (packet_socket) "
      "**************************/\n"
      "Sniff uses a packet socket to listen for all inbound and outbound "
      "packets.\n"
      "Specify the interface name as IFACE or 'any' if you want to listen on "
      "all\n"
      "interfaces.\n"
      "\n"
      "Internally, we listen on the ETH_P_ALL SOCK_RAW protocol for packets "
      "with\n"
      "an ETH_P_IP or ETH_P_8021Q ethernet type. (In 802.1q packets we examine "
      "only\n"
      "IP packets. Double tagged packets are ignored.) The packet count, "
      "length\n"
      "(including ethernet frame) and destination is recorded.\n"
      "\n"
      "Note one: packets from localhost to localhost are seen twice. We seem "
      "them\n"
      "once outbound and once inbound. And, as both source and destination is\n"
      "counted, you should expect a multiplication of four. You should expect "
      "a\n"
      "similar multiplication on machines doing NAT.\n"
      "\n"
      "Note two: if you want to see VLANs, your kernel must not process them. "
      "The\n"
      "Linux kernels on which this is tested use something called hardware "
      "VLAN\n"
      "acceleration. This mangles the ethernet frames to look like regular IP\n"
      "containing frames. Unload the 8021q module to be sure.\n"
      "\n"
      "Note three: if you want to capture packets not intended for your host "
      "-- a\n"
      "common setup is to mirror all traffic to a host that only runs the "
      "lightcount\n"
      "daemon -- you need to manually set the interfaces in promiscuous mode.\n"
      "\n");
}


x86 assembly (clang, -O0):
<sniff_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<sniff_help>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1291 x i8] c"/********************* module: sniff (packet_socket) **************************/\0ASniff uses a packet socket to listen for all inbound and outbound packets.\0ASpecify the interface name as IFACE or 'any' if you want to listen on all\0Ainterfaces.\0A\0AInternally, we listen on the ETH_P_ALL SOCK_RAW protocol for packets with\0Aan ETH_P_IP or ETH_P_8021Q ethernet type. (In 802.1q packets we examine only\0AIP packets. Double tagged packets are ignored.) The packet count, length\0A(including ethernet frame) and destination is recorded.\0A\0ANote one: packets from localhost to localhost are seen twice. We seem them\0Aonce outbound and once inbound. And, as both source and destination is\0Acounted, you should expect a multiplication of four. You should expect a\0Asimilar multiplication on machines doing NAT.\0A\0ANote two: if you want to see VLANs, your kernel must not process them. The\0ALinux kernels on which this is tested use something called hardware VLAN\0Aacceleration. This mangles the ethernet frames to look like regular IP\0Acontaining frames. Unload the 8021q module to be sure.\0A\0ANote three: if you want to capture packets not intended for your host -- a\0Acommon setup is to mirror all traffic to a host that only runs the lightcount\0Adaemon -- you need to manually set the interfaces in promiscuous mode.\0A\0A\00"
define void @sniff_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1291 x i8], [1291 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1290 x i8] c"/********************* module: sniff (packet_socket) **************************/\0ASniff uses a packet socket to listen for all inbound and outbound packets.\0ASpecify the interface name as IFACE or 'any' if you want to listen on all\0Ainterfaces.\0A\0AInternally, we listen on the ETH_P_ALL SOCK_RAW protocol for packets with\0Aan ETH_P_IP or ETH_P_8021Q ethernet type. (In 802.1q packets we examine only\0AIP packets. Double tagged packets are ignored.) The packet count, length\0A(including ethernet frame) and destination is recorded.\0A\0ANote one: packets from localhost to localhost are seen twice. We seem them\0Aonce outbound and once inbound. And, as both source and destination is\0Acounted, you should expect a multiplication of four. You should expect a\0Asimilar multiplication on machines doing NAT.\0A\0ANote two: if you want to see VLANs, your kernel must not process them. The\0ALinux kernels on which this is tested use something called hardware VLAN\0Aacceleration. This mangles the ethernet frames to look like regular IP\0Acontaining frames. Unload the 8021q module to be sure.\0A\0ANote three: if you want to capture packets not intended for your host -- a\0Acommon setup is to mirror all traffic to a host that only runs the lightcount\0Adaemon -- you need to manually set the interfaces in promiscuous mode.\0A\00"
define void @sniff_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1290 x i8], [1290 x i8]* @str, i64 0, i64 0))
ret void
}