// File: mh0fm4[P]SCDC/test/bench/simpat/simpat_srv.c
// Function: main
int main(int argc, char *argv[])
{
  /* scdc.log_init("log_FILE", sys.stdout, sys.stderr)*/

  scdc_init(SCDC_INIT_DEFAULT);

  simpat_init();

  scdc_nodeport_t np = SCDC_NODEPORT_NULL;

  if (argc <= 1)
  {
    SIMPAT_TRACE("setup: none");

  } else if (strcmp(argv[1], "uds") == 0)
  {
    SIMPAT_TRACE("setup: UDS");

    const char *socketname = (argc <= 2)?"simpat":argv[2];

    np = scdc_nodeport_open("uds:socketname:max_connections", socketname, 2);

  } else if (strcmp(argv[1], "tcp") == 0)
  {
    SIMPAT_TRACE("setup: TCP");

    np = scdc_nodeport_open("tcp:max_connections", 2);

  } else if (strcmp(argv[1], "mpi") == 0)
  {
    SIMPAT_TRACE("setup: MPI");

    np = scdc_nodeport_open("mpi");

  } else SIMPAT_TRACE("unknown mode: %s", argv[1]);

  SIMPAT_TRACE("start");
  scdc_nodeport_start(np, SCDC_NODEPORT_START_ASYNC_UNTIL_CANCEL);

  printf("Press <ENTER> to quit!\n");
  getchar();

  SIMPAT_TRACE("stop");
  scdc_nodeport_stop(np);

  SIMPAT_TRACE("release");
  scdc_nodeport_close(np);

  simpat_release();

  scdc_release();

  /*scdc.log_release()*/

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x7bdc1(%rip), %rdi     # 0x895ce
movb $0x0, %al
callq 0xdaf0
movb $0x0, %al
callq 0xda30
movq $0x0, -0x18(%rbp)
cmpl $0x1, -0x8(%rbp)
jg 0xd84c
jmp 0xd82b
leaq 0x7b7d2(%rip), %rdi     # 0x89004
movb $0x0, %al
callq 0xcd10
leaq 0x7b8ce(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
jmp 0xd993
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x7d1dd(%rip), %rsi     # 0x8aa38
callq 0xc960
cmpl $0x0, %eax
jne 0xd8ca
jmp 0xd867
leaq 0x7b7b5(%rip), %rdi     # 0x89023
movb $0x0, %al
callq 0xcd10
leaq 0x7b892(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
cmpl $0x2, -0x8(%rbp)
jg 0xd896
leaq 0x7b7b1(%rip), %rax     # 0x89041
movq %rax, -0x28(%rbp)
jmp 0xd8a2
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x7b793(%rip), %rdi     # 0x89048
movl $0x2, %edx
movb $0x0, %al
callq 0xe260
movq %rax, -0x18(%rbp)
jmp 0xd991
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x7d156(%rip), %rsi     # 0x8aa2f
callq 0xc960
cmpl $0x0, %eax
jne 0xd91a
jmp 0xd8e5
leaq 0x7b77b(%rip), %rdi     # 0x89067
movb $0x0, %al
callq 0xcd10
leaq 0x7b814(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
leaq 0x7b77d(%rip), %rdi     # 0x89085
movl $0x2, %esi
movb $0x0, %al
callq 0xe260
movq %rax, -0x18(%rbp)
jmp 0xd98f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x7b770(%rip), %rsi     # 0x89099
callq 0xc960
cmpl $0x0, %eax
jne 0xd965
jmp 0xd935
leaq 0x7b761(%rip), %rdi     # 0x8909d
movb $0x0, %al
callq 0xcd10
leaq 0x7b7c4(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
leaq 0x7b741(%rip), %rdi     # 0x89099
movb $0x0, %al
callq 0xe260
movq %rax, -0x18(%rbp)
jmp 0xd98d
jmp 0xd967
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x7b745(%rip), %rdi     # 0x890bb
movb $0x0, %al
callq 0xcd10
leaq 0x7b78a(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
jmp 0xd98d
jmp 0xd98f
jmp 0xd991
jmp 0xd993
jmp 0xd995
leaq 0x7b743(%rip), %rdi     # 0x890df
movb $0x0, %al
callq 0xcd10
leaq 0x7b764(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
movq -0x18(%rbp), %rdi
movl $0x4, %esi
callq 0xe370
leaq 0x7b732(%rip), %rdi     # 0x890f8
movb $0x0, %al
callq 0xcd10
callq 0xc950
leaq 0x7b737(%rip), %rdi     # 0x89110
movb $0x0, %al
callq 0xcd10
leaq 0x7b727(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
movq -0x18(%rbp), %rdi
callq 0xe3d0
leaq 0x7b72a(%rip), %rdi     # 0x89128
movb $0x0, %al
callq 0xcd10
leaq 0x7b702(%rip), %rdi     # 0x8910e
movb $0x0, %al
callq 0xcd10
movq -0x18(%rbp), %rdi
callq 0xe330
movb $0x0, %al
callq 0xda60
callq 0xdca0
xorl %eax, %eax
addq $0x30, %rsp
popq %rbp
retq