about summary refs log tree commit diff stats
path: root/dwm.1
Commit message (Collapse)AuthorAgeFilesLines
* renamed column into areaAnselm R. Garbe2006-09-281-7/+7
|
* man page fixarg@mmvi2006-09-221-1/+1
|
* fixed issue pointed out by Jukkaarg@mmvi2006-09-221-1/+1
|
* small man page fixarg@mmvi2006-09-221-0/+1
|
* updated man pagearg@mmvi2006-09-221-5/+1
|
* fixed a nuance in dwm.1arg@mmvi2006-09-201-1/+1
|
* really small changes to dwm.1Anselm R. Garbe2006-09-081-4/+3
|
* made markups in dwm.1 more consistentAnselm R. Garbe2006-09-071-95/+38
|
* small addition to dwm.1Anselm R. Garbe2006-09-071-4/+4
|
* well ok, added Mod-s to default bindings (however, I don't need it)Anselm R. Garbe2006-09-051-0/+6
|
* I really need column growing, now pushing upstreamAnselm R. Garbe2006-09-051-0/+6
|
* applied sanders patchAnselm R. Garbe2006-09-011-6/+12
|
* changed shortcut into Mod1-0Anselm R. Garbe2006-08-311-5/+5
|
* added viewall to mainstream (only Ross Mohns version, not the toggle)Anselm R. Garbe2006-08-311-0/+4
|
* implemented Button2 press on tags for toggletag on the focused clientAnselm R. Garbe2006-08-311-0/+6
|
* applied sanders somepatches.patchAnselm R. Garbe2006-08-281-1/+6
|
* updated man page of dwmAnselm R. Garbe2006-08-251-3/+3
|
* yet another fixAnselm R. Garbe2006-08-241-1/+1
|
* small man page fixAnselm R. Garbe2006-08-241-1/+2
|
* updated man pageAnselm R. Garbe2006-08-231-4/+4
|
* applied tag drawing change to man pageAnselm R. Garbe2006-08-231-4/+4
|
* small fix of man pageAnselm R. Garbe2006-08-231-1/+1
|
* updated man pageAnselm R. Garbe2006-08-221-2/+1
|
* small changes to dwm.1, rearranged order within main event loopAnselm R.Garbe2006-08-211-6/+8
|
* applied jk_to_tab patchAnselm R.Garbe2006-08-151-34/+42
|
* applied sanders man page patch, removed button2 from bar clickAnselm R.Garbe2006-08-141-19/+21
|
* implemented restack behavior (floats are on top in tiled mode)Anselm R.Garbe2006-08-141-2/+2
|
* removed viewnext/viewprevAnselm R.Garbe2006-08-141-16/+0
|
* updated man page, added CAVEATS sectionAnselm R.Garbe2006-08-131-7/+14
|
* implemented viewextend and added M-S-C-n shortcuts for extending the current ↵Anselm R.Garbe2006-08-111-4/+17
| | | | view... updated man page (works great!) nice feature
* applied Sanders fixes to dwm.1Anselm R.Garbe2006-08-111-4/+5
|
* fixed dwm.1, added Mod1-Shift-c (was missing for an odd reason)Anselm R.Garbe2006-08-111-3/+7
|
* updated dwm(1)Anselm R.Garbe2006-08-111-0/+14
|
* applied sander's patchAnselm R.Garbe2006-08-101-3/+10
|
* disallow zoom on maximized clientsAnselm R.Garbe2006-08-101-4/+0
|
* added a trailing '.' to shortcut descriptions in dwm(1)arg@10ksloc.org2006-08-071-15/+15
|
* applied Sanders man page/Makefile patcharg@10ksloc.org2006-08-071-1/+1
|
* updated man pagearg@10ksloc.org2006-08-071-0/+2
|
* applied Sanders doc changes, added a PHONY line and changed the output of ↵arg@10ksloc.org2006-08-031-15/+16
| | | | config.h creation somewhat
* changing MASTERW value from 52 to 60 (in both, default and arg), I feel this ↵arg@10ksloc.org2006-08-021-1/+1
| | | | is better now
* applied Sanders patches (numlock2)arg@10ksloc.org2006-08-021-10/+17
|
* removed artefacts of single-linked list (thanx to Jukka, I must have been mad)arg@10ksloc.org2006-08-011-1/+1
|
* centralized/externalized configuration to config.harg@10ksloc.org2006-08-011-4/+2
|
* applied Sanders patchesarg@10ksloc.org2006-08-011-17/+7
|
* s/0.5/0.6/ - my steps are wider than the realityarg@10ksloc.org2006-07-211-1/+1
|
* preparing 0.6 which will be available in the evening after sanders patch approx.arg@10ksloc.org2006-07-211-15/+2
|
* cleaned up codearg@10ksloc.org2006-07-201-1/+1
|
* fixed version in man pagearg@10ksloc.org2006-07-201-1/+1
|
* added heretag command which allows to tag a client of a foreign tag with ↵Anselm R. Garbe2006-07-181-0/+8
| | | | current tag
* patched dwmAnselm R. Garbe2006-07-171-1/+1
|
dding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# Posix detect program
# (c) 2010 Andreas Rumpf

# This program produces a C program that produces a Nimrod include file.
# The Nimrod include file lists the values of each POSIX constant.
# This is needed because POSIX is brain-dead: It only cares for C, any other
# language is ignored. It would have been easier had they specified the
# concrete values of the constants. Sigh.

import os, strutils

const
  cc = "gcc -o $1 $1.c"

  cfile = """
/* Generated by detect.nim */

#include <stdlib.h>
#include <stdio.h>
$1

int main() {
  FILE* f;
  f = fopen("$3_$4_consts.nim", "w+");
  fputs("# Generated by detect.nim\nconst\n", f);
  $2
  fclose(f);
}
"""

type
  TTypeKind = enum 
    cint, cshort, clong, cstring, pointer

var
  hd = ""
  tl = ""

proc myExec(cmd: string): bool = 
  return execShellCmd(cmd) == 0

proc header(s: string): bool = 
  const testh = "testh"
  var f: TFile
  if open(f, addFileExt(testh, "c"), fmWrite):
    f.write("#include $1\n" % s)
    f.write("int main() { return 0; }\n")
    close(f)
    result = myExec(cc % testh)
    removeFile(addFileExt(testh, "c"))
  if result:
    addf(hd, "#include $1\n", s)
    echo("Found: ", s)
  else:
    echo("Not found: ", s)

proc main = 
  const gen = "genconsts"
  var f: TFile
  if open(f, addFileExt(gen, "c"), fmWrite): 
    f.write(cfile % [hd, tl, system.hostOS, system.hostCPU])
    close(f)
  if not myExec(cc % gen): quit(1)
  if not myExec("./" & gen): quit(1)
  removeFile(addFileExt(gen, "c"))
  echo("Success")

proc v(name: string, typ: TTypeKind=cint) = 
  var n = if name[0] == '_': copy(name, 1) else: name
  var t = $typ
  case typ
  of pointer: 
    addf(tl, 
      "#ifdef $3\n  fprintf(f, \"  $1* = cast[$2](%p)\\n\", $3);\n#endif\n", 
      n, t, name)
  
  of cstring:
    addf(tl, 
      "#ifdef $3\n  fprintf(f, \"  $1* = $2(\\\"%s\\\")\\n\", $3);\n#endif\n",
      n, t, name)
  of clong:
    addf(tl, 
      "#ifdef $3\n  fprintf(f, \"  $1* = $2(%ld)\\n\", $3);\n#endif\n", 
      n, t, name)  
  else:  
    addf(tl, 
      "#ifdef $3\n  fprintf(f, \"  $1* = $2(%d)\\n\", $3);\n#endif\n", 
      n, t, name)

if header("<aio.h>"):
  v("AIO_ALLDONE")
  v("AIO_CANCELED")
  v("AIO_NOTCANCELED")
  v("LIO_NOP")
  v("LIO_NOWAIT")
  v("LIO_READ")
  v("LIO_WAIT")
  v("LIO_WRITE")

if header("<dlfcn.h>"):
  v("RTLD_LAZY")
  v("RTLD_NOW")
  v("RTLD_GLOBAL")
  v("RTLD_LOCAL")

if header("<errno.h>"):
  v("E2BIG")
  v("EACCES")
  v("EADDRINUSE")
  v("EADDRNOTAVAIL")
  v("EAFNOSUPPORT")
  v("EAGAIN")
  v("EALREADY")
  v("EBADF")
  v("EBADMSG")
  v("EBUSY")
  v("ECANCELED")
  v("ECHILD")
  v("ECONNABORTED")
  v("ECONNREFUSED")
  v("ECONNRESET")
  v("EDEADLK")
  v("EDESTADDRREQ")
  v("EDOM")
  v("EDQUOT")
  v("EEXIST")
  v("EFAULT")
  v("EFBIG")
  v("EHOSTUNREACH")
  v("EIDRM")
  v("EILSEQ")
  v("EINPROGRESS")
  v("EINTR")
  v("EINVAL")
  v("EIO")
  v("EISCONN")
  v("EISDIR")
  v("ELOOP")
  v("EMFILE")
  v("EMLINK")
  v("EMSGSIZE")
  v("EMULTIHOP")
  v("ENAMETOOLONG")
  v("ENETDOWN")
  v("ENETRESET")
  v("ENETUNREACH")
  v("ENFILE")
  v("ENOBUFS")
  v("ENODATA")
  v("ENODEV")
  v("ENOENT")
  v("ENOEXEC")
  v("ENOLCK")
  v("ENOLINK")
  v("ENOMEM")
  v("ENOMSG")
  v("ENOPROTOOPT")
  v("ENOSPC")
  v("ENOSR")
  v("ENOSTR")
  v("ENOSYS")
  v("ENOTCONN")
  v("ENOTDIR")
  v("ENOTEMPTY")
  v("ENOTSOCK")
  v("ENOTSUP")
  v("ENOTTY")
  v("ENXIO")
  v("EOPNOTSUPP")
  v("EOVERFLOW")
  v("EPERM")
  v("EPIPE")
  v("EPROTO")
  v("EPROTONOSUPPORT")
  v("EPROTOTYPE")
  v("ERANGE")
  v("EROFS")
  v("ESPIPE")
  v("ESRCH")
  v("ESTALE")
  v("ETIME")
  v("ETIMEDOUT")
  v("ETXTBSY")
  v("EWOULDBLOCK")
  v("EXDEV")
  
if header("<fcntl.h>"):
  v("F_DUPFD")
  v("F_GETFD")
  v("F_SETFD")
  v("F_GETFL")
  v("F_SETFL")
  v("F_GETLK")
  v("F_SETLK")
  v("F_SETLKW")
  v("F_GETOWN")
  v("F_SETOWN")
  v("FD_CLOEXEC")
  v("F_RDLCK")
  v("F_UNLCK")
  v("F_WRLCK")
  v("O_CREAT")
  v("O_EXCL")
  v("O_NOCTTY")
  v("O_TRUNC")
  v("O_APPEND")
  v("O_DSYNC")
  v("O_NONBLOCK")
  v("O_RSYNC")
  v("O_SYNC")
  v("O_ACCMODE")
  v("O_RDONLY")
  v("O_RDWR")
  v("O_WRONLY")
  v("POSIX_FADV_NORMAL")
  v("POSIX_FADV_SEQUENTIAL")
  v("POSIX_FADV_RANDOM")
  v("POSIX_FADV_WILLNEED")
  v("POSIX_FADV_DONTNEED")
  v("POSIX_FADV_NOREUSE")

if header("<fenv.h>"):
  v("FE_DIVBYZERO")
  v("FE_INEXACT")
  v("FE_INVALID")
  v("FE_OVERFLOW")
  v("FE_UNDERFLOW")
  v("FE_ALL_EXCEPT")
  v("FE_DOWNWARD")
  v("FE_TONEAREST")
  v("FE_TOWARDZERO")
  v("FE_UPWARD")
  v("FE_DFL_ENV", pointer)

if header("<fmtmsg.h>"):
  v("MM_HARD")
  v("MM_SOFT")
  v("MM_FIRM")
  v("MM_APPL")
  v("MM_UTIL")
  v("MM_OPSYS")
  v("MM_RECOVER")
  v("MM_NRECOV")
  v("MM_HALT")
  v("MM_ERROR")
  v("MM_WARNING")
  v("MM_INFO")
  v("MM_NOSEV")
  v("MM_PRINT")
  v("MM_CONSOLE")
  v("MM_OK")
  v("MM_NOTOK")
  v("MM_NOMSG")
  v("MM_NOCON")

if header("<fnmatch.h>"):
  v("FNM_NOMATCH")
  v("FNM_PATHNAME")
  v("FNM_PERIOD")
  v("FNM_NOESCAPE")
  v("FNM_NOSYS")

if header("<ftw.h>"):
  v("FTW_F")
  v("FTW_D")
  v("FTW_DNR")
  v("FTW_DP")
  v("FTW_NS")
  v("FTW_SL")
  v("FTW_SLN")
  v("FTW_PHYS")
  v("FTW_MOUNT")
  v("FTW_DEPTH")
  v("FTW_CHDIR")

if header("<glob.h>"):
  v("GLOB_APPEND")
  v("GLOB_DOOFFS")
  v("GLOB_ERR")
  v("GLOB_MARK")
  v("GLOB_NOCHECK")
  v("GLOB_NOESCAPE")
  v("GLOB_NOSORT")
  v("GLOB_ABORTED")
  v("GLOB_NOMATCH")
  v("GLOB_NOSPACE")
  v("GLOB_NOSYS")

if header("<langinfo.h>"):
  v("CODESET")
  v("D_T_FMT")
  v("D_FMT")
  v("T_FMT")
  v("T_FMT_AMPM")
  v("AM_STR")
  v("PM_STR")
  v("DAY_1")
  v("DAY_2")
  v("DAY_3")
  v("DAY_4")
  v("DAY_5")
  v("DAY_6")
  v("DAY_7")
  v("ABDAY_1")
  v("ABDAY_2")
  v("ABDAY_3")
  v("ABDAY_4")
  v("ABDAY_5")
  v("ABDAY_6")
  v("ABDAY_7")
  v("MON_1")
  v("MON_2")
  v("MON_3")
  v("MON_4")
  v("MON_5")
  v("MON_6")
  v("MON_7")
  v("MON_8")
  v("MON_9")
  v("MON_10")
  v("MON_11")
  v("MON_12")
  v("ABMON_1")
  v("ABMON_2")
  v("ABMON_3")
  v("ABMON_4")
  v("ABMON_5")
  v("ABMON_6")
  v("ABMON_7")
  v("ABMON_8")
  v("ABMON_9")
  v("ABMON_10")
  v("ABMON_11")
  v("ABMON_12")
  v("ERA")
  v("ERA_D_FMT")
  v("ERA_D_T_FMT")
  v("ERA_T_FMT")
  v("ALT_DIGITS")
  v("RADIXCHAR")
  v("THOUSEP")
  v("YESEXPR")
  v("NOEXPR")
  v("CRNCYSTR")
    
if header("<locale.h>"):
  v("LC_ALL") #{.importc, header: .}: cint
  v("LC_COLLATE") #{.importc, header: "<locale.h>".}: cint
  v("LC_CTYPE") #{.importc, header: "<locale.h>".}: cint
  v("LC_MESSAGES") #{.importc, header: "<locale.h>".}: cint
  v("LC_MONETARY") #{.importc, header: "<locale.h>".}: cint
  v("LC_NUMERIC") #{.importc, header: "<locale.h>".}: cint
  v("LC_TIME") #{.importc, header: "<locale.h>".}: cint

if header("<pthread.h>"):
  v("PTHREAD_BARRIER_SERIAL_THREAD")
  v("PTHREAD_CANCEL_ASYNCHRONOUS") 
  v("PTHREAD_CANCEL_ENABLE") 
  v("PTHREAD_CANCEL_DEFERRED")
  v("PTHREAD_CANCEL_DISABLE") 
  #v("PTHREAD_CANCELED")
  #v("PTHREAD_COND_INITIALIZER") 
  v("PTHREAD_CREATE_DETACHED")
  v("PTHREAD_CREATE_JOINABLE")
  v("PTHREAD_EXPLICIT_SCHED")
  v("PTHREAD_INHERIT_SCHED") 
  v("PTHREAD_MUTEX_DEFAULT") 
  v("PTHREAD_MUTEX_ERRORCHECK")
  #v("PTHREAD_MUTEX_INITIALIZER") 
  v("PTHREAD_MUTEX_NORMAL") 
  v("PTHREAD_MUTEX_RECURSIVE") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_ONCE_INIT") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_PRIO_INHERIT") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_PRIO_NONE") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_PRIO_PROTECT") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_PROCESS_SHARED") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_PROCESS_PRIVATE") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_SCOPE_PROCESS") #{.importc, header: "<pthread.h>".}: cint
  v("PTHREAD_SCOPE_SYSTEM") #{.importc, header: "<pthread.h>".}: cint

if header("<unistd.h>"):
  v("_POSIX_ASYNC_IO")
  v("_POSIX_PRIO_IO")
  v("_POSIX_SYNC_IO")
  v("F_OK")
  v("R_OK")
  v("W_OK")
  v("X_OK")

  v("_CS_PATH")
  v("_CS_POSIX_V6_ILP32_OFF32_CFLAGS") 
  v("_CS_POSIX_V6_ILP32_OFF32_LDFLAGS") 
  v("_CS_POSIX_V6_ILP32_OFF32_LIBS") 
  v("_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS") 
  v("_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS") 
  v("_CS_POSIX_V6_ILP32_OFFBIG_LIBS") 
  v("_CS_POSIX_V6_LP64_OFF64_CFLAGS") 
  v("_CS_POSIX_V6_LP64_OFF64_LDFLAGS")
  v("_CS_POSIX_V6_LP64_OFF64_LIBS") 
  v("_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS") 
  v("_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS") 
  v("_CS_POSIX_V6_LPBIG_OFFBIG_LIBS") 
  v("_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS")

  v("F_LOCK") 
  v("F_TEST") #{.importc: "F_TEST", header: "<unistd.h>".}: cint
  v("F_TLOCK") #{.importc: "F_TLOCK", header: "<unistd.h>".}: cint
  v("F_ULOCK") #{.importc: "F_ULOCK", header: "<unistd.h>".}: cint
  v("_PC_2_SYMLINKS") #{.importc: "_PC_2_SYMLINKS", header: "<unistd.h>".}: cint
  v("_PC_ALLOC_SIZE_MIN") 
  v("_PC_ASYNC_IO") #{.importc: "_PC_ASYNC_IO", header: "<unistd.h>".}: cint
  v("_PC_CHOWN_RESTRICTED") 
  v("_PC_FILESIZEBITS") #{.importc: "_PC_FILESIZEBITS", header: "<unistd.h>".}: cint
  v("_PC_LINK_MAX") #{.importc: "_PC_LINK_MAX", header: "<unistd.h>".}: cint
  v("_PC_MAX_CANON") #{.importc: "_PC_MAX_CANON", header: "<unistd.h>".}: cint
  v("_PC_MAX_INPUT") #{.importc: "_PC_MAX_INPUT", header: "<unistd.h>".}: cint
  v("_PC_NAME_MAX") #{.importc: "_PC_NAME_MAX", header: "<unistd.h>".}: cint
  v("_PC_NO_TRUNC") #{.importc: "_PC_NO_TRUNC", header: "<unistd.h>".}: cint
  v("_PC_PATH_MAX") #{.importc: "_PC_PATH_MAX", header: "<unistd.h>".}: cint
  v("_PC_PIPE_BUF") #{.importc: "_PC_PIPE_BUF", header: "<unistd.h>".}: cint
  v("_PC_PRIO_IO") #{.importc: "_PC_PRIO_IO", header: "<unistd.h>".}: cint
  v("_PC_REC_INCR_XFER_SIZE") 
  v("_PC_REC_MIN_XFER_SIZE") 
  v("_PC_REC_XFER_ALIGN") 
  v("_PC_SYMLINK_MAX") #{.importc: "_PC_SYMLINK_MAX", header: "<unistd.h>".}: cint
  v("_PC_SYNC_IO") #{.importc: "_PC_SYNC_IO", header: "<unistd.h>".}: cint
  v("_PC_VDISABLE") #{.importc: "_PC_VDISABLE", header: "<unistd.h>".}: cint
  v("_SC_2_C_BIND") #{.importc: "_SC_2_C_BIND", header: "<unistd.h>".}: cint
  v("_SC_2_C_DEV") #{.importc: "_SC_2_C_DEV", header: "<unistd.h>".}: cint
  v("_SC_2_CHAR_TERM") #{.importc: "_SC_2_CHAR_TERM", header: "<unistd.h>".}: cint
  v("_SC_2_FORT_DEV") #{.importc: "_SC_2_FORT_DEV", header: "<unistd.h>".}: cint
  v("_SC_2_FORT_RUN") #{.importc: "_SC_2_FORT_RUN", header: "<unistd.h>".}: cint
  v("_SC_2_LOCALEDEF") #{.importc: "_SC_2_LOCALEDEF", header: "<unistd.h>".}: cint
  v("_SC_2_PBS") #{.importc: "_SC_2_PBS", header: "<unistd.h>".}: cint
  v("_SC_2_PBS_ACCOUNTING") 
  v("_SC_2_PBS_CHECKPOINT") 
  v("_SC_2_PBS_LOCATE") #{.importc: "_SC_2_PBS_LOCATE", header: "<unistd.h>".}: cint
  v("_SC_2_PBS_MESSAGE") #{.importc: "_SC_2_PBS_MESSAGE", header: "<unistd.h>".}: cint
  v("_SC_2_PBS_TRACK") #{.importc: "_SC_2_PBS_TRACK", header: "<unistd.h>".}: cint
  v("_SC_2_SW_DEV") #{.importc: "_SC_2_SW_DEV", header: "<unistd.h>".}: cint
  v("_SC_2_UPE") #{.importc: "_SC_2_UPE", header: "<unistd.h>".}: cint
  v("_SC_2_VERSION") #{.importc: "_SC_2_VERSION", header: "<unistd.h>".}: cint
  v("_SC_ADVISORY_INFO") #{.importc: "_SC_ADVISORY_INFO", header: "<unistd.h>".}: cint
  v("_SC_AIO_LISTIO_MAX") 
  v("_SC_AIO_MAX") #{.importc: "_SC_AIO_MAX", header: "<unistd.h>".}: cint
  v("_SC_AIO_PRIO_DELTA_MAX") 
  v("_SC_ARG_MAX") #{.importc: "_SC_ARG_MAX", header: "<unistd.h>".}: cint
  v("_SC_ASYNCHRONOUS_IO") 
  v("_SC_ATEXIT_MAX") #{.importc: "_SC_ATEXIT_MAX", header: "<unistd.h>".}: cint
  v("_SC_BARRIERS") #{.importc: "_SC_BARRIERS", header: "<unistd.h>".}: cint
  v("_SC_BC_BASE_MAX") #{.importc: "_SC_BC_BASE_MAX", header: "<unistd.h>".}: cint
  v("_SC_BC_DIM_MAX") #{.importc: "_SC_BC_DIM_MAX", header: "<unistd.h>".}: cint
  v("_SC_BC_SCALE_MAX") #{.importc: "_SC_BC_SCALE_MAX", header: "<unistd.h>".}: cint
  v("_SC_BC_STRING_MAX") #{.importc: "_SC_BC_STRING_MAX", header: "<unistd.h>".}: cint
  v("_SC_CHILD_MAX") #{.importc: "_SC_CHILD_MAX", header: "<unistd.h>".}: cint
  v("_SC_CLK_TCK") #{.importc: "_SC_CLK_TCK", header: "<unistd.h>".}: cint
  v("_SC_CLOCK_SELECTION") 
  v("_SC_COLL_WEIGHTS_MAX")
  v("_SC_CPUTIME") #{.importc: "_SC_CPUTIME", header: "<unistd.h>".}: cint
  v("_SC_DELAYTIMER_MAX") 
  v("_SC_EXPR_NEST_MAX") #{.importc: "_SC_EXPR_NEST_MAX", header: "<unistd.h>".}: cint
  v("_SC_FSYNC") #{.importc: "_SC_FSYNC", header: "<unistd.h>".}: cint
  v("_SC_GETGR_R_SIZE_MAX")
  v("_SC_GETPW_R_SIZE_MAX")
  v("_SC_HOST_NAME_MAX") #{.importc: "_SC_HOST_NAME_MAX", header: "<unistd.h>".}: cint
  v("_SC_IOV_MAX") #{.importc: "_SC_IOV_MAX", header: "<unistd.h>".}: cint
  v("_SC_IPV6") #{.importc: "_SC_IPV6", header: "<unistd.h>".}: cint
  v("_SC_JOB_CONTROL") #{.importc: "_SC_JOB_CONTROL", header: "<unistd.h>".}: cint
  v("_SC_LINE_MAX") #{.importc: "_SC_LINE_MAX", header: "<unistd.h>".}: cint
  v("_SC_LOGIN_NAME_MAX") 
  v("_SC_MAPPED_FILES") #{.importc: "_SC_MAPPED_FILES", header: "<unistd.h>".}: cint
  v("_SC_MEMLOCK") #{.importc: "_SC_MEMLOCK", header: "<unistd.h>".}: cint
  v("_SC_MEMLOCK_RANGE") #{.importc: "_SC_MEMLOCK_RANGE", header: "<unistd.h>".}: cint
  v("_SC_MEMORY_PROTECTION")
  v("_SC_MESSAGE_PASSING") 
  v("_SC_MONOTONIC_CLOCK") 
  v("_SC_MQ_OPEN_MAX") #{.importc: "_SC_MQ_OPEN_MAX", header: "<unistd.h>".}: cint
  v("_SC_MQ_PRIO_MAX") #{.importc: "_SC_MQ_PRIO_MAX", header: "<unistd.h>".}: cint
  v("_SC_NGROUPS_MAX") #{.importc: "_SC_NGROUPS_MAX", header: "<unistd.h>".}: cint
  v("_SC_OPEN_MAX") #{.importc: "_SC_OPEN_MAX", header: "<unistd.h>".}: cint
  v("_SC_PAGE_SIZE") #{.importc: "_SC_PAGE_SIZE", header: "<unistd.h>".}: cint
  v("_SC_PRIORITIZED_IO") 
  v("_SC_PRIORITY_SCHEDULING") 
  v("_SC_RAW_SOCKETS") #{.importc: "_SC_RAW_SOCKETS", header: "<unistd.h>".}: cint
  v("_SC_RE_DUP_MAX") #{.importc: "_SC_RE_DUP_MAX", header: "<unistd.h>".}: cint
  v("_SC_READER_WRITER_LOCKS") 
  v("_SC_REALTIME_SIGNALS") 
  v("_SC_REGEXP") #{.importc: "_SC_REGEXP", header: "<unistd.h>".}: cint
  v("_SC_RTSIG_MAX") #{.importc: "_SC_RTSIG_MAX", header: "<unistd.h>".}: cint
  v("_SC_SAVED_IDS") #{.importc: "_SC_SAVED_IDS", header: "<unistd.h>".}: cint
  v("_SC_SEM_NSEMS_MAX") #{.importc: "_SC_SEM_NSEMS_MAX", header: "<unistd.h>".}: cint
  v("_SC_SEM_VALUE_MAX") #{.importc: "_SC_SEM_VALUE_MAX", header: "<unistd.h>".}: cint
  v("_SC_SEMAPHORES") #{.importc: "_SC_SEMAPHORES", header: "<unistd.h>".}: cint
  v("_SC_SHARED_MEMORY_OBJECTS") 
  v("_SC_SHELL") #{.importc: "_SC_SHELL", header: "<unistd.h>".}: cint
  v("_SC_SIGQUEUE_MAX") #{.importc: "_SC_SIGQUEUE_MAX", header: "<unistd.h>".}: cint
  v("_SC_SPAWN") #{.importc: "_SC_SPAWN", header: "<unistd.h>".}: cint
  v("_SC_SPIN_LOCKS") #{.importc: "_SC_SPIN_LOCKS", header: "<unistd.h>".}: cint
  v("_SC_SPORADIC_SERVER") 
  v("_SC_SS_REPL_MAX") #{.importc: "_SC_SS_REPL_MAX", header: "<unistd.h>".}: cint
  v("_SC_STREAM_MAX") #{.importc: "_SC_STREAM_MAX", header: "<unistd.h>".}: cint
  v("_SC_SYMLOOP_MAX") #{.importc: "_SC_SYMLOOP_MAX", header: "<unistd.h>".}: cint
  v("_SC_SYNCHRONIZED_IO") 
  v("_SC_THREAD_ATTR_STACKADDR") 
  v("_SC_THREAD_ATTR_STACKSIZE") 
  v("_SC_THREAD_CPUTIME") 
  v("_SC_THREAD_DESTRUCTOR_ITERATIONS") 
  v("_SC_THREAD_KEYS_MAX") 
  v("_SC_THREAD_PRIO_INHERIT") 
  v("_SC_THREAD_PRIO_PROTECT") 
  v("_SC_THREAD_PRIORITY_SCHEDULING") 
  v("_SC_THREAD_PROCESS_SHARED") 
  v("_SC_THREAD_SAFE_FUNCTIONS") 
  v("_SC_THREAD_SPORADIC_SERVER")
  v("_SC_THREAD_STACK_MIN") 
  v("_SC_THREAD_THREADS_MAX") 
  v("_SC_THREADS") #{.importc: "_SC_THREADS", header: "<unistd.h>".}: cint
  v("_SC_TIMEOUTS") #{.importc: "_SC_TIMEOUTS", header: "<unistd.h>".}: cint
  v("_SC_TIMER_MAX") #{.importc: "_SC_TIMER_MAX", header: "<unistd.h>".}: cint
  v("_SC_TIMERS") #{.importc: "_SC_TIMERS", header: "<unistd.h>".}: cint
  v("_SC_TRACE") #{.importc: "_SC_TRACE", header: "<unistd.h>".}: cint
  v("_SC_TRACE_EVENT_FILTER") 
  v("_SC_TRACE_EVENT_NAME_MAX")
  v("_SC_TRACE_INHERIT") #{.importc: "_SC_TRACE_INHERIT", header: "<unistd.h>".}: cint
  v("_SC_TRACE_LOG") #{.importc: "_SC_TRACE_LOG", header: "<unistd.h>".}: cint
  v("_SC_TRACE_NAME_MAX") 
  v("_SC_TRACE_SYS_MAX") #{.importc: "_SC_TRACE_SYS_MAX", header: "<unistd.h>".}: cint
  v("_SC_TRACE_USER_EVENT_MAX") 
  v("_SC_TTY_NAME_MAX") #{.importc: "_SC_TTY_NAME_MAX", header: "<unistd.h>".}: cint
  v("_SC_TYPED_MEMORY_OBJECTS") 
  v("_SC_TZNAME_MAX") #{.importc: "_SC_TZNAME_MAX", header: "<unistd.h>".}: cint
  v("_SC_V6_ILP32_OFF32") 
  v("_SC_V6_ILP32_OFFBIG") 
  v("_SC_V6_LP64_OFF64") #{.importc: "_SC_V6_LP64_OFF64", header: "<unistd.h>".}: cint
  v("_SC_V6_LPBIG_OFFBIG") 
  v("_SC_VERSION") #{.importc: "_SC_VERSION", header: "<unistd.h>".}: cint
  v("_SC_XBS5_ILP32_OFF32") 
  v("_SC_XBS5_ILP32_OFFBIG") 
  v("_SC_XBS5_LP64_OFF64") 
  v("_SC_XBS5_LPBIG_OFFBIG") 
  v("_SC_XOPEN_CRYPT") #{.importc: "_SC_XOPEN_CRYPT", header: "<unistd.h>".}: cint
  v("_SC_XOPEN_ENH_I18N") 
  v("_SC_XOPEN_LEGACY") #{.importc: "_SC_XOPEN_LEGACY", header: "<unistd.h>".}: cint
  v("_SC_XOPEN_REALTIME") 
  v("_SC_XOPEN_REALTIME_THREADS") 
  v("_SC_XOPEN_SHM") #{.importc: "_SC_XOPEN_SHM", header: "<unistd.h>".}: cint
  v("_SC_XOPEN_STREAMS") #{.importc: "_SC_XOPEN_STREAMS", header: "<unistd.h>".}: cint
  v("_SC_XOPEN_UNIX") #{.importc: "_SC_XOPEN_UNIX", header: "<unistd.h>".}: cint
  v("_SC_XOPEN_VERSION") #{.importc: "_SC_XOPEN_VERSION", header: "<unistd.h>".}: cint

  v("SEEK_SET") #{.importc, header: "<unistd.h>".}: cint
  v("SEEK_CUR") #{.importc, header: "<unistd.h>".}: cint
  v("SEEK_END") #{.importc, header: "<unistd.h>".}: cint


if header("<semaphore.h>"):
  v("SEM_FAILED", pointer)

if header("<sys/ipc.h>"):
  v("IPC_CREAT") #{.importc, header: .}: cint
  v("IPC_EXCL") #{.importc, header: "<sys/ipc.h>".}: cint
  v("IPC_NOWAIT") #{.importc, header: "<sys/ipc.h>".}: cint
  v("IPC_PRIVATE") #{.importc, header: "<sys/ipc.h>".}: cint
  v("IPC_RMID") #{.importc, header: "<sys/ipc.h>".}: cint
  v("IPC_SET") #{.importc, header: "<sys/ipc.h>".}: cint
  v("IPC_STAT") #{.importc, header: "<sys/ipc.h>".}: cint

if header("<sys/stat.h>"):
  v("S_IFMT") #{.importc, header: .}: cint
  v("S_IFBLK") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IFCHR") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IFIFO") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IFREG") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IFDIR") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IFLNK") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IFSOCK") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IRWXU") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IRUSR") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IWUSR") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IXUSR") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IRWXG") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IRGRP") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IWGRP") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IXGRP") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IRWXO") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IROTH") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IWOTH") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_IXOTH") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_ISUID") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_ISGID") #{.importc, header: "<sys/stat.h>".}: cint
  v("S_ISVTX") #{.importc, header: "<sys/stat.h>".}: cint

if header("<sys/statvfs.h>"):
  v("ST_RDONLY") #{.importc, header: .}: cint
  v("ST_NOSUID") #{.importc, header: "<sys/statvfs.h>".}: cint
       
if header("<sys/mman.h>"):
  v("PROT_READ") #{.importc, header: .}: cint
  v("PROT_WRITE") #{.importc, header: "<sys/mman.h>".}: cint
  v("PROT_EXEC") #{.importc, header: "<sys/mman.h>".}: cint
  v("PROT_NONE") #{.importc, header: "<sys/mman.h>".}: cint
  v("MAP_SHARED") #{.importc, header: "<sys/mman.h>".}: cint
  v("MAP_PRIVATE") #{.importc, header: "<sys/mman.h>".}: cint
  v("MAP_FIXED") #{.importc, header: "<sys/mman.h>".}: cint
  v("MS_ASYNC") #{.importc, header: "<sys/mman.h>".}: cint
  v("MS_SYNC") #{.importc, header: "<sys/mman.h>".}: cint
  v("MS_INVALIDATE") #{.importc, header: "<sys/mman.h>".}: cint
  v("MCL_CURRENT") #{.importc, header: "<sys/mman.h>".}: cint
  v("MCL_FUTURE") #{.importc, header: "<sys/mman.h>".}: cint

  v("MAP_FAILED", pointer)
  v("POSIX_MADV_NORMAL") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_MADV_SEQUENTIAL") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_MADV_RANDOM") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_MADV_WILLNEED") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_MADV_DONTNEED") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_TYPED_MEM_ALLOCATE") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_TYPED_MEM_ALLOCATE_CONTIG") #{.importc, header: "<sys/mman.h>".}: cint
  v("POSIX_TYPED_MEM_MAP_ALLOCATABLE") #{.importc, header: "<sys/mman.h>".}: cint

if header("<time.h>"):
  v("CLOCKS_PER_SEC", clong) 
  v("CLOCK_PROCESS_CPUTIME_ID")
  v("CLOCK_THREAD_CPUTIME_ID")
  v("CLOCK_REALTIME")
  v("TIMER_ABSTIME") 
  v("CLOCK_MONOTONIC") 

if header("<sys/wait.h>"):
  v("WNOHANG") #{.importc, header: .}: cint
  v("WUNTRACED") #{.importc, header: "<sys/wait.h>".}: cint
  #v("WEXITSTATUS") 
  #v("WIFCONTINUED") 
  #v("WIFEXITED") 
  #v("WIFSIGNALED")
  #v("WIFSTOPPED") 
  #v("WSTOPSIG") 
  #v("WTERMSIG") 
  v("WEXITED") #{.importc, header: "<sys/wait.h>".}: cint
  v("WSTOPPED") #{.importc, header: "<sys/wait.h>".}: cint
  v("WCONTINUED") #{.importc, header: "<sys/wait.h>".}: cint
  v("WNOWAIT") #{.importc, header: "<sys/wait.h>".}: cint
  v("P_ALL") #{.importc, header: "<sys/wait.h>".}: cint 
  v("P_PID") #{.importc, header: "<sys/wait.h>".}: cint 
  v("P_PGID") #{.importc, header: "<sys/wait.h>".}: cint
         
if header("<signal.h>"):
  v("SIGEV_NONE") #{.importc, header: "<signal.h>".}: cint
  v("SIGEV_SIGNAL") #{.importc, header: "<signal.h>".}: cint
  v("SIGEV_THREAD") #{.importc, header: "<signal.h>".}: cint
  v("SIGABRT") #{.importc, header: "<signal.h>".}: cint
  v("SIGALRM") #{.importc, header: "<signal.h>".}: cint
  v("SIGBUS") #{.importc, header: "<signal.h>".}: cint
  v("SIGCHLD") #{.importc, header: "<signal.h>".}: cint
  v("SIGCONT") #{.importc, header: "<signal.h>".}: cint
  v("SIGFPE") #{.importc, header: "<signal.h>".}: cint
  v("SIGHUP") #{.importc, header: "<signal.h>".}: cint
  v("SIGILL") #{.importc, header: "<signal.h>".}: cint
  v("SIGINT") #{.importc, header: "<signal.h>".}: cint
  v("SIGKILL") #{.importc, header: "<signal.h>".}: cint
  v("SIGPIPE") #{.importc, header: "<signal.h>".}: cint
  v("SIGQUIT") #{.importc, header: "<signal.h>".}: cint
  v("SIGSEGV") #{.importc, header: "<signal.h>".}: cint
  v("SIGSTOP") #{.importc, header: "<signal.h>".}: cint
  v("SIGTERM") #{.importc, header: "<signal.h>".}: cint
  v("SIGTSTP") #{.importc, header: "<signal.h>".}: cint
  v("SIGTTIN") #{.importc, header: "<signal.h>".}: cint
  v("SIGTTOU") #{.importc, header: "<signal.h>".}: cint
  v("SIGUSR1") #{.importc, header: "<signal.h>".}: cint
  v("SIGUSR2") #{.importc, header: "<signal.h>".}: cint
  v("SIGPOLL") #{.importc, header: "<signal.h>".}: cint
  v("SIGPROF") #{.importc, header: "<signal.h>".}: cint
  v("SIGSYS") #{.importc, header: "<signal.h>".}: cint
  v("SIGTRAP") #{.importc, header: "<signal.h>".}: cint
  v("SIGURG") #{.importc, header: "<signal.h>".}: cint
  v("SIGVTALRM") #{.importc, header: "<signal.h>".}: cint
  v("SIGXCPU") #{.importc, header: "<signal.h>".}: cint
  v("SIGXFSZ") #{.importc, header: "<signal.h>".}: cint
  v("SA_NOCLDSTOP") #{.importc, header: "<signal.h>".}: cint
  v("SIG_BLOCK") #{.importc, header: "<signal.h>".}: cint
  v("SIG_UNBLOCK") #{.importc, header: "<signal.h>".}: cint
  v("SIG_SETMASK") #{.importc, header: "<signal.h>".}: cint
  v("SA_ONSTACK") #{.importc, header: "<signal.h>".}: cint
  v("SA_RESETHAND") #{.importc, header: "<signal.h>".}: cint
  v("SA_RESTART") #{.importc, header: "<signal.h>".}: cint
  v("SA_SIGINFO") #{.importc, header: "<signal.h>".}: cint
  v("SA_NOCLDWAIT") #{.importc, header: "<signal.h>".}: cint
  v("SA_NODEFER") #{.importc, header: "<signal.h>".}: cint
  v("SS_ONSTACK") #{.importc, header: "<signal.h>".}: cint
  v("SS_DISABLE") #{.importc, header: "<signal.h>".}: cint
  v("MINSIGSTKSZ") #{.importc, header: "<signal.h>".}: cint
  v("SIGSTKSZ") #{.importc, header: "<signal.h>".}: cint

if header("<nl_types.h>"):
  v("NL_SETD") #{.importc, header: .}: cint
  v("NL_CAT_LOCALE") #{.importc, header: "<nl_types.h>".}: cint

if header("<sched.h>"):
  v("SCHED_FIFO")
  v("SCHED_RR")
  v("SCHED_SPORADIC")
  v("SCHED_OTHER")

if header("<sys/select.h>"):
  v("FD_SETSIZE")

if header("<net/if.h>"):
  v("IF_NAMESIZE")

if header("<sys/socket.h>"):
  v("SCM_RIGHTS") #{.importc, header: .}: cint
  v("SOCK_DGRAM") #{.importc, header: "<sys/socket.h>".}: cint
  v("SOCK_RAW") #{.importc, header: "<sys/socket.h>".}: cint
  v("SOCK_SEQPACKET") #{.importc, header: "<sys/socket.h>".}: cint
  v("SOCK_STREAM") #{.importc, header: "<sys/socket.h>".}: cint
  v("SOL_SOCKET") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_ACCEPTCONN") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_BROADCAST") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_DEBUG") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_DONTROUTE") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_ERROR") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_KEEPALIVE") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_LINGER") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_OOBINLINE") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_RCVBUF") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_RCVLOWAT") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_RCVTIMEO") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_REUSEADDR") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_SNDBUF") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_SNDLOWAT") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_SNDTIMEO") #{.importc, header: "<sys/socket.h>".}: cint
  v("SO_TYPE") #{.importc, header: "<sys/socket.h>".}: cint
  v("SOMAXCONN") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_CTRUNC") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_DONTROUTE") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_EOR") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_OOB") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_PEEK") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_TRUNC") #{.importc, header: "<sys/socket.h>".}: cint
  v("MSG_WAITALL") #{.importc, header: "<sys/socket.h>".}: cint
  v("AF_INET") #{.importc, header: "<sys/socket.h>".}: cint
  v("AF_INET6") #{.importc, header: "<sys/socket.h>".}: cint
  v("AF_UNIX") #{.importc, header: "<sys/socket.h>".}: cint
  v("AF_UNSPEC") #{.importc, header: "<sys/socket.h>".}: cint
  v("SHUT_RD") #{.importc, header: "<sys/socket.h>".}: cint
  v("SHUT_RDWR") #{.importc, header: "<sys/socket.h>".}: cint
  v("SHUT_WR") #{.importc, header: "<sys/socket.h>".}: cint

if header("<netinet/in.h>"):
  v("IPPROTO_IP") #{.importc, header: .}: cint
  v("IPPROTO_IPV6") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPPROTO_ICMP") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPPROTO_RAW") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPPROTO_TCP") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPPROTO_UDP") #{.importc, header: "<netinet/in.h>".}: cint
  v("INADDR_ANY") #{.importc, header: "<netinet/in.h>".}: TinAddrScalar
  v("INADDR_BROADCAST") #{.importc, header: "<netinet/in.h>".}: TinAddrScalar
  v("INET_ADDRSTRLEN") #{.importc, header: "<netinet/in.h>".}: cint

  v("IPV6_JOIN_GROUP") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPV6_LEAVE_GROUP") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPV6_MULTICAST_HOPS") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPV6_MULTICAST_IF") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPV6_MULTICAST_LOOP") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPV6_UNICAST_HOPS") #{.importc, header: "<netinet/in.h>".}: cint
  v("IPV6_V6ONLY") #{.importc, header: "<netinet/in.h>".}: cint

  v("TCP_NODELAY") #{.importc, header: "<netinet/tcp.h>".}: cint

if header("<netdb.h>"):
  v("IPPORT_RESERVED")

  v("HOST_NOT_FOUND")
  v("NO_DATA")
  v("NO_RECOVERY") 
  v("TRY_AGAIN") 

  v("AI_PASSIVE") 
  v("AI_CANONNAME") 
  v("AI_NUMERICHOST") 
  v("AI_NUMERICSERV") 
  v("AI_V4MAPPED") 
  v("AI_ALL") 
  v("AI_ADDRCONFIG") 

  v("NI_NOFQDN") 
  v("NI_NUMERICHOST") 
  v("NI_NAMEREQD") 
  v("NI_NUMERICSERV") 
  v("NI_NUMERICSCOPE") 
  v("NI_DGRAM") 
  v("EAI_AGAIN")
  v("EAI_BADFLAGS")
  v("EAI_FAIL")
  v("EAI_FAMILY")
  v("EAI_MEMORY")
  v("EAI_NONAME")
  v("EAI_SERVICE")
  v("EAI_SOCKTYPE")
  v("EAI_SYSTEM")
  v("EAI_OVERFLOW")

if header("<poll.h>"):
  v("POLLIN", cshort)
  v("POLLRDNORM", cshort)
  v("POLLRDBAND", cshort)
  v("POLLPRI", cshort)
  v("POLLOUT", cshort)
  v("POLLWRNORM", cshort)
  v("POLLWRBAND", cshort)
  v("POLLERR", cshort)
  v("POLLHUP", cshort)
  v("POLLNVAL", cshort)

if header("<spawn.h>"):
  v("POSIX_SPAWN_RESETIDS")
  v("POSIX_SPAWN_SETPGROUP")
  v("POSIX_SPAWN_SETSCHEDPARAM")
  v("POSIX_SPAWN_SETSCHEDULER")
  v("POSIX_SPAWN_SETSIGDEF")
  v("POSIX_SPAWN_SETSIGMASK")

main()