<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile doxygen_version="1.9.4">
  <compound kind="file">
    <name>application.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>application_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <member kind="function">
      <type>void</type>
      <name>osmo_init_ignore_signals</name>
      <anchorfile>application_8h.html</anchorfile>
      <anchor>a38dc37d2cf97c98bcb1d713794ff2a75</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_init_logging</name>
      <anchorfile>application_8h.html</anchorfile>
      <anchor>a4fd763edd744e7df28f7c48eef0676ae</anchor>
      <arglist>(const struct log_info *) OSMO_DEPRECATED(&quot;use osmo_init_logging2() instead to avoid a NULL talloc ctx&quot;)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_init_logging2</name>
      <anchorfile>application_8h.html</anchorfile>
      <anchor>a4b11cf941dd9e32e89bd24d56a808ecc</anchor>
      <arglist>(void *ctx, const struct log_info *log_info)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_daemonize</name>
      <anchorfile>application_8h.html</anchorfile>
      <anchor>aa6ae82e2c37662eda7093d3db1b3b830</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="variable">
      <type>struct log_target *</type>
      <name>osmo_stderr_target</name>
      <anchorfile>application_8h.html</anchorfile>
      <anchor>a2f56746f90c8f8065e8f33c007e5505e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>backtrace.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>backtrace_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>osmo_generate_backtrace</name>
      <anchorfile>backtrace_8h.html</anchorfile>
      <anchor>ae1d7c5276d845c48c0b964a1033b6c60</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_log_backtrace</name>
      <anchorfile>backtrace_8h.html</anchorfile>
      <anchor>a89adddebf59157ca25eb6cb422a02151</anchor>
      <arglist>(int subsys, int level)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>base64.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>base64_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_base64_encode</name>
      <anchorfile>base64_8h.html</anchorfile>
      <anchor>a1808831840f22ba9774b6f108754dea9</anchor>
      <arglist>(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_base64_decode</name>
      <anchorfile>base64_8h.html</anchorfile>
      <anchor>a1674f5075736ca10c24f00ff6b2f0009</anchor>
      <arglist>(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bit16gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>bit16gen_8h.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_load16le_ext</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>adaa9cbfc6f37448b137dceb82eb9b799</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_load16be_ext</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>a450dbd88d8858eeb5de9c76f6f02b214</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_load16be_ext_2</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>a5ec2fa851cfe3fe89e4e1cfd717a38af</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store16le_ext</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>a0a17886ab7c6a2fcccb2cdad11d98edb</anchor>
      <arglist>(uint16_t x, void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store16be_ext</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>a6a99c7969c0b344390345c9a3fa2caec</anchor>
      <arglist>(uint16_t x, void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_load16le</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>ac889036814030b1d0cc125fcc17e3718</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_load16be</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>ac4316e9600be38095bd3cf9c9ba36034</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store16le</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>a940ae5f8a6b23f79393b3d12085b1a40</anchor>
      <arglist>(uint16_t x, void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store16be</name>
      <anchorfile>bit16gen_8h.html</anchorfile>
      <anchor>a1b4030030fde2f0d8ff27ea8ac3875fb</anchor>
      <arglist>(uint16_t x, void *p)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bit32gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>bit32gen_8h.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_load32le_ext</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>a45a1f2dd1bc797e867a0c72d86aaac26</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_load32be_ext</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>aaaff71d90952b66d86511a79456a19d5</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_load32be_ext_2</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>a0a71bca2d15d8d95a193cfaaafe18d45</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store32le_ext</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>ae965d05b00bf271edbd1c5728f85606f</anchor>
      <arglist>(uint32_t x, void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store32be_ext</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>ad136de8807ae98c8a109532cc0c4c66a</anchor>
      <arglist>(uint32_t x, void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_load32le</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>a4ed4253e2f6ca52cace75eb588a00ad5</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_load32be</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>a1b4573684c9e7f18463c6aff20b96e2b</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store32le</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>a1bb4e8a9fddab4ba628163eb609ec10d</anchor>
      <arglist>(uint32_t x, void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store32be</name>
      <anchorfile>bit32gen_8h.html</anchorfile>
      <anchor>a0b58d24b8eedd60bd90cf0d82ab28372</anchor>
      <arglist>(uint32_t x, void *p)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bit64gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>bit64gen_8h.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <member kind="function" static="yes">
      <type>static uint64_t</type>
      <name>osmo_load64le_ext</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>a1dbb4054dc1c02e53b4f74835e8ea712</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint64_t</type>
      <name>osmo_load64be_ext</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>aaf77aa28a4f0e968e28c6f498a2e8ea9</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint64_t</type>
      <name>osmo_load64be_ext_2</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>ad04fd7112f2b0b5c532ab48598807171</anchor>
      <arglist>(const void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store64le_ext</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>afb48fab8193e98a7986bc4657e66c9c4</anchor>
      <arglist>(uint64_t x, void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store64be_ext</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>acd56fa8fc8e4ed1d4956769fa8862dbb</anchor>
      <arglist>(uint64_t x, void *p, uint8_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint64_t</type>
      <name>osmo_load64le</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>a807ef287aed34ef394e0296c2199ab9d</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint64_t</type>
      <name>osmo_load64be</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>ac37a729baf4be619a2e50a960754b17b</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store64le</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>af9603548303f49aaac70953a2ee63046</anchor>
      <arglist>(uint64_t x, void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_store64be</name>
      <anchorfile>bit64gen_8h.html</anchorfile>
      <anchor>aa6c599f3b43767a7771fc93e1723c07a</anchor>
      <arglist>(uint64_t x, void *p)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bitcomp.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>bitcomp_8h.html</filename>
    <includes id="bitvec_8h" name="bitvec.h" local="no" imported="no">osmocom/core/bitvec.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_t4_encode</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>gaa4f70ee3b6e93fff44240366f0b6fedd</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bits.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>bits_8h.html</filename>
    <includes id="bit16gen_8h" name="bit16gen.h" local="no" imported="no">osmocom/core/bit16gen.h</includes>
    <includes id="bit32gen_8h" name="bit32gen.h" local="no" imported="no">osmocom/core/bit32gen.h</includes>
    <includes id="bit64gen_8h" name="bit64gen.h" local="no" imported="no">osmocom/core/bit64gen.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIN_SPEC</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab3ca2b9ae4ea991a847081d5c072fda8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIN_PRINT</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gaf1796dd84e28e6cad4e792c886f491fc</anchor>
      <arglist>(byte)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIT_SPEC</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga0edf7ef0d33b16bac63600f37de0478f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIT_PRINT_EX</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga71e06d05678a8e41476c648bfc26a35b</anchor>
      <arglist>(byte, ch)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIT_PRINT</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga5b7bbe6c4df28755bded35dbcffda2eb</anchor>
      <arglist>(byte)</arglist>
    </member>
    <member kind="typedef">
      <type>int8_t</type>
      <name>sbit_t</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab6b2fe6d30b1abe4a655e9cf033b23ca</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>uint8_t</type>
      <name>ubit_t</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga6a432fe43b85ec8e0d13e7de04a3f8ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>uint8_t</type>
      <name>pbit_t</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga1780d9a13fbdbf69eae79b53092e47db</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_br_mode</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga34685b612429c678efe8c42b2616b12e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_BITS_IN_DWORD</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12ea24af110a553e7ac2b7beaa80455d9e78</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_BYTES_IN_DWORD</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12ea639e01e0c2eb95e2b1ecdee7f9b1fa77</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_BITS_IN_BYTE</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12eadd4dada5dd7984bac5929d303cbb3ea3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_WORD_SWAP</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12eaed9c48da86bcc42f6fd6c33ca458287d</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>osmo_pbit_bytesize</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga2d7ddc29e908961ad898356a720ddd45</anchor>
      <arglist>(unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ubit2pbit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga0396755b3f1fb67dda62c6310bcefae5</anchor>
      <arglist>(pbit_t *out, const ubit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_pbit2ubit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga6061c0bccf3149afbfd3717655926610</anchor>
      <arglist>(ubit_t *out, const pbit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_nibble_shift_right</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gacc781ff2ed10005457258a5f435c96fb</anchor>
      <arglist>(uint8_t *out, const uint8_t *in, unsigned int num_nibbles)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_nibble_shift_left_unal</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga720f02d3e0b8ead8892ea2796551d5cf</anchor>
      <arglist>(uint8_t *out, const uint8_t *in, unsigned int num_nibbles)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_ubit2sbit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga9a76a29b0916e9cd26c5ca65dbbfb325</anchor>
      <arglist>(sbit_t *out, const ubit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sbit2ubit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga520d72b80bd83e41b58afe012005984f</anchor>
      <arglist>(ubit_t *out, const sbit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ubit2pbit_ext</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga55b990334c0b0188134d42b6a201d6bc</anchor>
      <arglist>(pbit_t *out, unsigned int out_ofs, const ubit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_pbit2ubit_ext</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7978cf8714618d6682751058818444c6</anchor>
      <arglist>(ubit_t *out, unsigned int out_ofs, const pbit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_bit_reversal</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gae4f3c9fa5d7ac188213d59dd8f83da40</anchor>
      <arglist>(uint32_t x, enum osmo_br_mode k)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_revbytebits_32</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7c83c316140d1209f4b2dc83b3eea5cf</anchor>
      <arglist>(uint32_t x)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_revbytebits_8</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gafe16634bf4f34bd4dd0f7bc5dcf54e33</anchor>
      <arglist>(uint8_t x)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_revbytebits_buf</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab44abd4982a164c8e2e5588d9fd81852</anchor>
      <arglist>(uint8_t *buf, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_rol16</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gac3e432aa41d4435a5d206da5b7f9a7e6</anchor>
      <arglist>(uint16_t in, unsigned shift)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bitvec.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>bitvec_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <class kind="struct">bitvec</class>
    <member kind="enumeration">
      <type></type>
      <name>bit_value</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga9f16b701956714c5f84b0a6120d131ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>ZERO</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaae117e3533122c80b262257b49b21cddf</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>ONE</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaa7a725f13af144bdef532d0389ba75e0d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>L</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaaef31cc6fe9479955961311ee18ac205f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>H</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaa5008b1179f399a2273fd3f6a7fc3b292</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>enum bit_value</type>
      <name>bitvec_get_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaafa5522adcd980634faa6059b9aee3a1</anchor>
      <arglist>(const struct bitvec *bv, unsigned int bitnr)</arglist>
    </member>
    <member kind="function">
      <type>enum bit_value</type>
      <name>bitvec_get_bit_pos_high</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga958c055f2e6c1983de24f970fcf351b2</anchor>
      <arglist>(const struct bitvec *bv, unsigned int bitnr)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_get_nth_set_bit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga586f2e477420cf97ff85fb5029409528</anchor>
      <arglist>(const struct bitvec *bv, unsigned int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga58af5972b3f9f9590ab677591ea08654</anchor>
      <arglist>(struct bitvec *bv, unsigned int bitnr, enum bit_value bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaaaec65c173424583952f3f8c87b8d9e0</anchor>
      <arglist>(struct bitvec *bv, enum bit_value bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_bit_high</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga9bc267f4f06fbc4d51754144ad195e01</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga8a35d07a2716e1d6d816a4028612e869</anchor>
      <arglist>(struct bitvec *bv, const enum bit_value *bits, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_u64</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3bc972c0ec080f82adb7cc1328c85e1c</anchor>
      <arglist>(struct bitvec *bv, uint64_t v, uint8_t num_bits, bool use_lh)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_uint</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gada7f0c0bad40354d9323db1ef53da13b</anchor>
      <arglist>(struct bitvec *bv, unsigned int ui, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_uint</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaca0563425ea4947dacaf33ce23cbe817</anchor>
      <arglist>(struct bitvec *bv, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_find_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga7366e9cd542a95177d1d906b1a83200d</anchor>
      <arglist>(const struct bitvec *bv, unsigned int n, enum bit_value val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_spare_padding</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga6c6bf6ae771c101a05b3695fff54e593</anchor>
      <arglist>(struct bitvec *bv, unsigned int up_to_bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga531d7610f179bbcb46cbe2fe8fafbc9e</anchor>
      <arglist>(struct bitvec *bv, uint8_t *bytes, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gae64f81294cb6f0521d7b03addcbedee2</anchor>
      <arglist>(struct bitvec *bv, const uint8_t *bytes, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>struct bitvec *</type>
      <name>bitvec_alloc</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga4fab97ef97d237370c1147e765f80a16</anchor>
      <arglist>(unsigned int size, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_free</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaed6f952768bfdfbb09491195cba83232</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_unhex</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gae6aad886f187d967552ab8807dc84048</anchor>
      <arglist>(struct bitvec *bv, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_pack</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga309e4e3f006f160f016eca5ff9d29411</anchor>
      <arglist>(const struct bitvec *bv, uint8_t *buffer)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_unpack</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gad4c8196ee9a8cab04af60577ea0fcadf</anchor>
      <arglist>(struct bitvec *bv, const uint8_t *buffer)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>bitvec_read_field</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga465b2992b4abf3a6bd88244fb012215e</anchor>
      <arglist>(struct bitvec *bv, unsigned int *read_index, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_write_field</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gab76ababf6e79ccb51314d7e74381881a</anchor>
      <arglist>(struct bitvec *bv, unsigned int *write_index, uint64_t val, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_fill</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga58e79f89821667662d35ac16f296517f</anchor>
      <arglist>(struct bitvec *bv, unsigned int num_bits, enum bit_value fill)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>bit_value_to_char</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3ff0dbe3fbc6eb1b6c4a93a680e5d1c0</anchor>
      <arglist>(enum bit_value v)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_to_string_r</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5c0c73912905c1f4400869da0a7bb439</anchor>
      <arglist>(const struct bitvec *bv, char *str)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_zero</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gab3953b2f83b395699039b565edc803a3</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>bitvec_rl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaacff55d1b7b4749bb47998bff2ab69f9</anchor>
      <arglist>(const struct bitvec *bv, bool b)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>bitvec_rl_curbit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3dd2844a5868df3c3e33ccf04e9179cb</anchor>
      <arglist>(struct bitvec *bv, bool b, unsigned int max_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_shiftl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5e336973391eb0e24d6973ec51fdda00</anchor>
      <arglist>(struct bitvec *bv, unsigned int n)</arglist>
    </member>
    <member kind="function">
      <type>int16_t</type>
      <name>bitvec_get_int16_msb</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga0a6fbad0ee12ac9b17af6eb0b49fce7a</anchor>
      <arglist>(const struct bitvec *bv, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_add_array</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaec9f2c4612b55bbbd840187f46d92e9c</anchor>
      <arglist>(struct bitvec *bv, const uint32_t *array, unsigned int array_len, bool dry_run, unsigned int num_bits)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>bitvec_used_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga634c68602acc9f1d1de490ac1c53e293</anchor>
      <arglist>(const struct bitvec *bv)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>bitvec_tailroom_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga79117cb575fe0c1e334fa727f8fe8d1d</anchor>
      <arglist>(const struct bitvec *bv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>byteswap.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>byteswap_8h.html</filename>
    <includes id="endian_8h" name="endian.h" local="no" imported="no">osmocom/core/endian.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>osmo_ntohl</name>
      <anchorfile>byteswap_8h.html</anchorfile>
      <anchor>a0da869fce11ebea3432d08317874f200</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_ntohs</name>
      <anchorfile>byteswap_8h.html</anchorfile>
      <anchor>ab3adb87b4c847819b29c359c19fed0c2</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_htonl</name>
      <anchorfile>byteswap_8h.html</anchorfile>
      <anchor>afabda0c0661d96ff87e119997d5bddd1</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_htons</name>
      <anchorfile>byteswap_8h.html</anchorfile>
      <anchor>a621e194c5a89c0c9f0a80168635c8080</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_swab32</name>
      <anchorfile>byteswap_8h.html</anchorfile>
      <anchor>a6fd5d55d9e5caf60897287cf4b0984d2</anchor>
      <arglist>(uint32_t in)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_swab16</name>
      <anchorfile>byteswap_8h.html</anchorfile>
      <anchor>ace04f7608464f154baf391b0930372fb</anchor>
      <arglist>(uint16_t in)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>conv_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <class kind="struct">osmo_conv_code</class>
    <class kind="struct">osmo_conv_encoder</class>
    <class kind="struct">osmo_conv_decoder</class>
    <member kind="enumeration">
      <type></type>
      <name>osmo_conv_term</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaf0fd132530ce2b394bad052c7242590e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>CONV_TERM_FLUSH</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ggaf0fd132530ce2b394bad052c7242590ea255ffa13977bc3a7513d90485123e7c2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>CONV_TERM_TRUNCATION</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ggaf0fd132530ce2b394bad052c7242590eadd3d6c82aa9a0be1f38479f89d6c1b04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>CONV_TERM_TAIL_BITING</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ggaf0fd132530ce2b394bad052c7242590ea63bb13a152bdb0b61594e10aabe990c1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_get_input_length</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa1382de36811cc10f218b877cad5c2d5</anchor>
      <arglist>(const struct osmo_conv_code *code, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_get_output_length</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga278e64b79e6b589c835a0c401fde3660</anchor>
      <arglist>(const struct osmo_conv_code *code, int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_encode_init</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga729a0ee108fb0f830aef9652acb1f998</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_encode_load_state</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gacd456a6e66cd06364000d83b9d4a9c5f</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const ubit_t *input)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode_raw</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga15d88c910f3072194278d42582162872</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const ubit_t *input, ubit_t *output, int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode_flush</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gac54f3af7b08df20b530694ee3a660918</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga928c04825469cc3481be1717d69534d6</anchor>
      <arglist>(const struct osmo_conv_code *code, const ubit_t *input, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_init</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8d62497e9411049141f699d67068b1ab</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const struct osmo_conv_code *code, int len, int start_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_reset</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga5b03fc1ff68f02690c1e6536f4a44562</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, int start_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_rewind</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga118b5aec8b6ad0eb45f0cb2bc96525af</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_deinit</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gac5eaa9e63f2f78c65070dfdbd8f8cd88</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_scan</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8c0b5474a256cc21ba605bf2594468bc</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const sbit_t *input, int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_flush</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad6eea080a67fdcecfc6d108d07d37c3c</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const sbit_t *input)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_get_best_end_state</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad2d7bb7224a7362c048f3c147c09c106</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_get_output</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga123033117643f7c2ea610cbc21cfeeb7</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, ubit_t *output, int has_flush, int end_state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8eb8fcdfe0d49890927a6ce7bfc921dc</anchor>
      <arglist>(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>counter.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>counter_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <class kind="struct">osmo_counter</class>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_counter_dec</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>ab551812fda9da1fb0858ec791267632f</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_counter_inc</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a144d8342099d8071512bee17cbd2d4e3</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned long</type>
      <name>osmo_counter_get</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a9f0b07a713aefe7017cf5a588837cab5</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_counter_reset</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a7eb52944abbb34018fc30f6441d2815d</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_counter *</type>
      <name>osmo_counter_alloc</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a25b161274af8c472e6dc3dd5bf5dd20d</anchor>
      <arglist>(const char *name) OSMO_DEPRECATED(&quot;Implement as osmo_stat_item instead&quot;)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_counter_free</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a8fd223ccc11465261d0043498f3b7fc6</anchor>
      <arglist>(struct osmo_counter *ctr) OSMO_DEPRECATED(&quot;Implement as osmo_stat_item instead&quot;)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_counters_for_each</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a13522cfb91c1dd87cfa9d9b246676666</anchor>
      <arglist>(int(*handle_counter)(struct osmo_counter *, void *), void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_counters_count</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a770b2893a968a3348eec9fdece28dfdc</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_counter *</type>
      <name>osmo_counter_get_by_name</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a097b54f74643595cace122522a46894a</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_counter_difference</name>
      <anchorfile>counter_8h.html</anchorfile>
      <anchor>a53ab8cd2ac269f632b30043674809564</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc16.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>crc16_8h.html</filename>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga58cd4fba87bbaf0f343bd33180eebe42</anchor>
      <arglist>(uint16_t crc, uint8_t const *buffer, size_t len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_crc16_byte</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga4e06f5f025021925caffc89c203ca63c</anchor>
      <arglist>(uint16_t crc, const uint8_t data)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16_ccitt</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaad60da91cb9972f08402e66fe456faa3</anchor>
      <arglist>(uint16_t crc, uint8_t const *buffer, size_t len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_crc16_ccitt_byte</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gae9bbf080cb79448668ff0421a8923876</anchor>
      <arglist>(uint16_t crc, const uint8_t data)</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga539c9a3a9def4b974c3957a9d843fc03</anchor>
      <arglist>[256]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_ccitt_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gabc80ae8a51f5ed975c980dee63129818</anchor>
      <arglist>[256]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc16gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>crc16gen_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <class kind="struct">osmo_crc16gen_code</class>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga5f2be129743f4ef86a0dc8254e7ef2db</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc16gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga9a00e7f03b13fafc300c472041232a13</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc16gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga78c47159065aced37cb21d78dc5f7a66</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc32gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>crc32gen_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <class kind="struct">osmo_crc32gen_code</class>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_crc32gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga38fd8d69d0e56e7ac9c424d9c1201da3</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc32gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gacd9e567dca7fe9704c4a3091fb73f731</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc32gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gafd51fe33e5139ac2ac74b235864bc5f6</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc64gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>crc64gen_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <class kind="struct">osmo_crc64gen_code</class>
    <member kind="function">
      <type>uint64_t</type>
      <name>osmo_crc64gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaea21afc395bb6817b77ff5bd7a66e1b6</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc64gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gae8e3f4375b32508b040ce49e948b06d5</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc64gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaa78449595b3ce3ff202d3f898a85f995</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc8gen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>crc8gen_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <class kind="struct">osmo_crc8gen_code</class>
    <member kind="function">
      <type>uint8_t</type>
      <name>osmo_crc8gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga1549c35fe5c50ec456a7bcbe65573e62</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc8gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga66f9c6afefc4dfe9baacdaf75ac1d95a</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc8gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gac88fe09d8beb2a70f1ec43f87920ee73</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crcgen.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>crcgen_8h.html</filename>
    <includes id="crc8gen_8h" name="crc8gen.h" local="no" imported="no">osmocom/core/crc8gen.h</includes>
    <includes id="crc16gen_8h" name="crc16gen.h" local="no" imported="no">osmocom/core/crc16gen.h</includes>
    <includes id="crc32gen_8h" name="crc32gen.h" local="no" imported="no">osmocom/core/crc32gen.h</includes>
    <includes id="crc64gen_8h" name="crc64gen.h" local="no" imported="no">osmocom/core/crc64gen.h</includes>
  </compound>
  <compound kind="file">
    <name>defs.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>defs_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_GNUC_PREREQ</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga74e01f67651f36d2eb902d318fb3f1b5</anchor>
      <arglist>(maj, min)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae50be441dbfc7f95c61fdde4cdfb111</anchor>
      <arglist>(text)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9fc6cb4f6eae2ccd7fb2ec67a38b6fb8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED_OUTSIDE</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga18c73792dc759e9a929f5feda0d22f6e</anchor>
      <arglist>(text)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>endian.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>endian_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IS_LITTLE_ENDIAN</name>
      <anchorfile>endian_8h.html</anchorfile>
      <anchor>a15408f7c4554c93be027949399cfcaf5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IS_BIG_ENDIAN</name>
      <anchorfile>endian_8h.html</anchorfile>
      <anchor>ab67baeda1c52529fc18b1abee583d2ca</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>exec.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>exec_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_environment_filter</name>
      <anchorfile>exec_8h.html</anchorfile>
      <anchor>ab1efc7ed7bdb411bb019c6aefb2a0dcb</anchor>
      <arglist>(char **out, size_t out_len, char **in, const char **whitelist)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_environment_append</name>
      <anchorfile>exec_8h.html</anchorfile>
      <anchor>a71687348f645b14678c4c7f5d0a6e805</anchor>
      <arglist>(char **out, size_t out_len, char **in)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_close_all_fds_above</name>
      <anchorfile>exec_8h.html</anchorfile>
      <anchor>a74007aea8c9beff8570913b483b856c6</anchor>
      <arglist>(int last_fd_to_keep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_system_nowait2</name>
      <anchorfile>exec_8h.html</anchorfile>
      <anchor>a75cce23ee8e0c96dcec47ff5d1465373</anchor>
      <arglist>(const char *command, const char **env_whitelist, char **addl_env, const char *user)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_system_nowait</name>
      <anchorfile>exec_8h.html</anchorfile>
      <anchor>a680be9aef4deaf60a5a9d47677a6feca</anchor>
      <arglist>(const char *command, const char **env_whitelist, char **addl_env)</arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>osmo_environment_whitelist</name>
      <anchorfile>exec_8h.html</anchorfile>
      <anchor>ab522083bcb56160c2fc73abeac9ca6a3</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>fsm.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>fsm_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <class kind="struct">osmo_fsm_state</class>
    <class kind="struct">osmo_fsm</class>
    <class kind="struct">osmo_fsm_inst</class>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMSL</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga6f501668d6d818fc87f1b18425356b19</anchor>
      <arglist>(fi, subsys, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMSLSRC</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9f0a5bfa21b49696349ed9dd7dad8af1</anchor>
      <arglist>(fi, subsys, level, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSML</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga248ade15a1d1ff4f70788ef38e8b6245</anchor>
      <arglist>(fi, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMLSRC</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaaf05b1a8f42eb3f914af695c4d87a770</anchor>
      <arglist>(fi, level, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSM</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga66da89c33fe5a79d4672674125ebbff3</anchor>
      <arglist>(fi, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMSRC</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga366288002411697a3687219b66c8f2e4</anchor>
      <arglist>(fi, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_T_FMT</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0eea157837d423a623cfecd581c24de3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_T_FMT_ARGS</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga2f012bcf729f8788d21db8c11f755d51</anchor>
      <arglist>(T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gac2bc3009053763ca99356e824529a2e4</anchor>
      <arglist>(fi, new_state, timeout_secs, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga06bd66dd40203f72953962be8e4e58cb</anchor>
      <arglist>(fi, new_state, timeout_ms, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_keep_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga605785659c0482d32c83748f88904ace</anchor>
      <arglist>(fi, new_state)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_keep_or_start_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gacb4924436f161531a6dd319b63a44878</anchor>
      <arglist>(fi, new_state, timeout_secs, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_keep_or_start_timer_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gabaa3b0fde0c5b1993deb078374f84ffc</anchor>
      <arglist>(fi, new_state, timeout_ms, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_dispatch</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga75d93c070baff6dd6e555d91a7ccc62f</anchor>
      <arglist>(fi, event, data)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_term</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga22397fdc69a4f1c303bb0b2694d5f2aa</anchor>
      <arglist>(fi, cause, data)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_term_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga73462b9dcd7c5e33186e3319672045d1</anchor>
      <arglist>(fi, cause, data)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_broadcast_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gacd75fb4de417fb951b17bba2a554c877</anchor>
      <arglist>(fi, cause, data)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_fsm_term_cause</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1c5b754d5fcf2bfe2f8bf4d4afedb413</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_PARENT</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413ab30c67e0d20e1f8c7c28ddd3a20eef9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_REQUEST</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413a3202db525e55bc84276bf4e6aa7fcdd4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_REGULAR</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413aa5b1f64cc6be12a3d4e8d5c92ec068bd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_ERROR</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413a7395c7e1bc2b1182bf3cfe2c529bd800</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_TIMEOUT</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413a8de3cf5fe33fc38b5204577d73845cc1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_fsm_term_cause_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9919c29d9ad5283c475f51c008b52723</anchor>
      <arglist>(enum osmo_fsm_term_cause cause)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_log_addr</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7dacf1bf0ada0d3dc6d2640d24b4aa59</anchor>
      <arglist>(bool log_addr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_log_timeouts</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9f3dad4e32e230e416a8c93401676d42</anchor>
      <arglist>(bool log_timeouts)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_term_safely</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7ae199b946d722bc789b1c59f7c3aa15</anchor>
      <arglist>(bool term_safely)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_set_dealloc_ctx</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf031d280ac7d4fc8ac17e8560e5370a8</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_register</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga444610bbb35d19b21918e61ec4431fa7</anchor>
      <arglist>(struct osmo_fsm *fsm)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_unregister</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga42d9cd0b40e6ffc26c8285861776d8e0</anchor>
      <arglist>(struct osmo_fsm *fsm)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm *</type>
      <name>osmo_fsm_find_by_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1e43eb41f84e07b9606c9cdcba87c6c2</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_find_by_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gafce8ab2dfb4f98c6ecd2eb064aa48746</anchor>
      <arglist>(const struct osmo_fsm *fsm, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_find_by_id</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf4d7f891b0a2110daa84136b5ea8f540</anchor>
      <arglist>(const struct osmo_fsm *fsm, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_alloc</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gab86e5e11480147ed8e39d9dd2a6884e5</anchor>
      <arglist>(struct osmo_fsm *fsm, void *ctx, void *priv, int log_level, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_alloc_child</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7fd84a05fb6fd849d46219730202e5d3</anchor>
      <arglist>(struct osmo_fsm *fsm, struct osmo_fsm_inst *parent, uint32_t parent_term_event)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_unlink_parent</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7f88d5cf42077f32bc5cf667ca310d9d</anchor>
      <arglist>(struct osmo_fsm_inst *fi, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_change_parent</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4411b21a211cd81f2e858a146f2c4cca</anchor>
      <arglist>(struct osmo_fsm_inst *fi, struct osmo_fsm_inst *new_parent, uint32_t new_parent_term_event)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_free</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4cd3ac472cde5e97f156d398863e2081</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gad28f180033fb18442307fed1d27c3c48</anchor>
      <arglist>(struct osmo_fsm_inst *fi, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id_f</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4373cf363f849faed4fc9885c55a1d22</anchor>
      <arglist>(struct osmo_fsm_inst *fi, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id_f_sanitize</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0b17e0f3c1b06fff03a0277237145d28</anchor>
      <arglist>(struct osmo_fsm_inst *fi, char replace_with, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_event_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga242186790266b18531bb9fde93b2487d</anchor>
      <arglist>(const struct osmo_fsm *fsm, uint32_t event)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_inst_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1279f48c166034158dd79d0bb25664b7</anchor>
      <arglist>(const struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_state_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gae7114ae434235be6e42db8b8231054a8</anchor>
      <arglist>(const struct osmo_fsm *fsm, uint32_t state)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_fsm_inst_state_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf1e0858354f77cffb1386a350b694fe4</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7608be014cba6f4310e880481b309a94</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0a7ae7d6b80ea6e0123a78a850474f02</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaa8eef574f84a42c60ce12646b0618e0e</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_or_start_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga159227b2c4b5ee4bb668e3460adf7c47</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_or_start_timer_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga423b10042103cfa1e0ec3713e3d477a8</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_dispatch</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga523a1a8428c37cb1d30fa1c3c11e6db1</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t event, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_term</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9b46a56e04ac98b7f20cae167e952a12</anchor>
      <arglist>(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_term_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga2d5fc607d8297c048af8ae7f3e9a6ac8</anchor>
      <arglist>(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_broadcast_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4ec2d59ba8fa1effca075762cde6156b</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t event, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_fsm_term_cause_names</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4c11df3f81765eb1ee987d95d3f0d07e</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>gsmtap.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>gsmtap_8h.html</filename>
    <class kind="struct">gsmtap_hdr</class>
    <class kind="struct">gsmtap_osmocore_log_hdr</class>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_VERSION</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a536563b1d85851e10c97d3901c8f3f85</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_UM</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>acf35119501d58a6d15d0d3583d8914f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_ABIS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a7de71fefaf7d797816cf4004356ceb19</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_UM_BURST</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aa0f4415c48b0fd81572661b04463544d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_SIM</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a5d1d6ef387ae1f74f8176e6aa4879bbd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_TETRA_I1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a11f29f3a373147eab6a91ee0addd427a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_TETRA_I1_BURST</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a50a93d09f323719926989d8332110d18</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_WMX_BURST</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad784d81f4dcd55a6bef72c6019f58b9a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_GB_LLC</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a78a800fa49b63aff41c82c18f2547cbe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_GB_SNDCP</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a7285990ef743c0f845ee1fdb1b5ca278</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_GMR1_UM</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a93fd3c3da748c48ee9bd8753fb7537d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_UMTS_RLC_MAC</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a5189ad680891d60cb12aab7ed1d78bf8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_UMTS_RRC</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a3da9cb8f17807e6c810f739510506583</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_LTE_RRC</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae9dad4f65b17506bc14f30c405702d81</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_LTE_MAC</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>af0d26b8483ea71528d920acec2d7192c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_LTE_MAC_FRAMED</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a691d2cc38b387c357e71f1d6e814b283</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_OSMOCORE_LOG</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a1bdc141d1b216f9d6e9f9e92283c5401</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_QC_DIAG</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ac857ba3a2f81c0649a1eeea4a47463fe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_LTE_NAS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a6a7a7c17bd71ec8772ce6d271f8305c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_E1T1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a873f988c8a9b49167197aec72f169099</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TYPE_GSM_RLP</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ab1093cbd7fab8b81585d9202af96fc06</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_UNKNOWN</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a029e8af211d1389fc7c75bc34b2469ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_FCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a56c1fe8617ab45a7fb80624a69958850</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_PARTIAL_SCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>af6467ac078ea19d16fd9cb24d3ecda7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_SCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a69386c56c0c4ab06b59f7ac8b3ed3507</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_CTS_SCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae57f1b6a6fc857936b92e33a59d98cd5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_COMPACT_SCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ac935538ae82fb76944d6125a484f26f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_NORMAL</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae8c283db6042196863fa7f7bb215d97a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_DUMMY</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a0ce63511d04dfe292f6439b6edfc9ace</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_ACCESS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a8d9e26d2c996cc21dbcbeb209babcabe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_NONE</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a52935a9b345e4a92ed8bd95bbc184b27</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_CDMA_CODE</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a4248e68d6293784641a0028062ebd10f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_FCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aaec85d3dec5db6991812ff8849c50c03</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_FFB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ab8e4fc2c62ddbd73fe58b2d27d0bdeaa</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_PDU</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ac64ebad3e2a008bcd3d6e818026e8bf3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_HACK</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a35af5eb2ea462e8ef52b2b84b1f52746</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_BURST_PHY_ATTRIBUTES</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a0f95b23aa09abdd673eb5398ca5039eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_UNKNOWN</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aebbf577629abfe6558e42fee7802e21a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_BCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae48b5c2187eb9e3921a21800b2211e2c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_CCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>add3dc5a5af70f391df4758d4948014e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_RACH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>af9491d9327c33194b6bb33f98cf972d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_AGCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>afff02a97ce6cb7a353eb67870eded784</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_PCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a86e3ed06a9965b34568828bbe7af1cbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_SDCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a47e9516eeeba0e346cc270a6479496e4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_SDCCH4</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a5cff53337e31c55920f51b6e7e754449</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_SDCCH8</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ab0ddec8cee59b3b93eaae47f1580fd56</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_FACCH_F</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9ae3eee25d9d5f0eaa9e0b903344a344</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_FACCH_H</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aea46edb2c9c6593db1354b44954d50c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_PACCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae861fd8e077b82af469fbdf3dd507199</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_CBCH52</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a67fe93aefe20a5d5db27cca63ba901a2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_PDTCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9d59203296389054eed4231657de284a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_PDCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad6991e9a54f982cfbfe46701ba26384c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_PTCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ac2edc0119c86e163e5c186ad7fbc2c76</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_CBCH51</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adda605c900649fc46d5d5db109828ee5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_VOICE_F</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a55ffedc96a9532a60cdcbefddbbfed83</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_VOICE_H</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a26ae30f7436a704b46682308326908f9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_TCH_F</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a6ecb9ead460a3d0b2876ce53e4e52f90</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_TCH_H</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aa3ef8542bb907d1c386cdedfad8450df</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GPRS_CS_BASE</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9a4fa54435edf621f1c61472807a35d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GPRS_CS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a587e7eb5bb3d3ad6fc3a6b529bd81365</anchor>
      <arglist>(N)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GPRS_MCS_BASE</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>add45a0716aed5683a1b7cf7edbaa2249</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GPRS_MCS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abfa536f50e62799675fa6224450bd0c2</anchor>
      <arglist>(N)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_CHANNEL_ACCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a24ac9973e10026f03f30e92edee90763</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_APDU</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9f660a6e81f948569fedd35c3ded9f33</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_ATR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a67d1aaa986cbe5b4cd85eb6f48a38001</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_PPS_REQ</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a11e74cd1046b4d13b8f558ba075fa4df</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_PPS_RSP</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a666f842795b15be561bc65164dab22fc</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_TPDU_HDR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ab13abdd43b29b93e642f16969164b592</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_TPDU_CMD</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a4b96cb200b11f8e08135da0954a50a89</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_TPDU_RSP</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a64090a2b3eb3a91f9789243accba1801</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_SIM_TPDU_SW</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aec4e3afaf091e22a3bd94cfd7b0c022a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_BSCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a7259cdc729c701d10a3ddd3858c9a029</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_AACH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad3ed40549145f475c7466ea84a7308d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_SCH_HU</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a84c0a112c354d67a9c08f068d103c9f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_SCH_HD</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a63c78de0b63c67c4cc93d5d6948296c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_SCH_F</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a881e268f3d32b14b95f090f1fc5fda2e</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_BNCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a37a4ff6cb01fa5b56a21d786fafd5073</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_STCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ade3dc16da7a1d696b5a145ffd7612df8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_TCH_F</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae1ff54e2813b70c303da3ba34b0a73ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_DMO_SCH_S</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a0577a44427d7454ab8210f9095aece82</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_DMO_SCH_H</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9d718cbb25a12af3f3901327210d9471</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_DMO_SCH_F</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a36060b61d6114265dae5e17ddaf52712</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_DMO_STCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a37998b24f36352afd198d50ad9575f32</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_TETRA_DMO_TCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a7c8cc0fb56c394652145a1be4e2561c2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_UNKNOWN</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae924f816250aa914bca77545c03a1608</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_BCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a831495cfb3597d1be6c07a82395e8690</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_CCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aae22c3b31d7d2637f1367ebc9e4e420c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_PCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae610004e9e485bb55aff5c6cc3e66af4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_AGCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adc49f2beca709d1e2981a6f9697d9706</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_BACH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a3279c94fa11285a174aa3f535f8a3eb0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_RACH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aa54201f67c64e4287bb553bc113e1ddc</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_CBCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abdf6d6ca4fa268c0ed88509879ddf8c1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_SDCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a6baef2e94a7c6c7c7bc450b3db585a9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_TACCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>acfe48055951f746fe65bb44d13c54e17</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_GBCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad9caeea9444f565384d63dcdbbed771f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_SACCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad8463933ee95b84c4d89ab58757b2d2e</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_FACCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a7d60fe12d8701251d1257b66c19d7ded</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_DKAB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a5321437b043fcc0d1afbed32137da79b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_TCH3</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a5f3c703c0c5c9d6d58076c03225efa56</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_TCH6</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>accdc219518c7bc30bb67674d3a23e2d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_GMR1_TCH9</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a6a43929153fbe5b0d3815e8409188b21</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_UMTS_CH_PCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a146564d748122ae5b69df67b7ae7d89c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_UMTS_CH_CCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9b21575ecd8ba89d4e09198dfffc1653</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_UMTS_CH_DCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>af42a50acfce8079d1796629bde553362</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_BCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aa39ccf1261106549e134c2b4545c25dc</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_CCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a9d8af5e68de9bd17671ca777021d0fbf</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_DCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ac1833218b1f6e29539ea66205c3ae8dc</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_MCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a6dcedd924627caa7027f82bdab3185e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_PCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a1f7477b7873738473fd2828006d24da7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_DTCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a5afef44245bb843390e6c4ef21cb88c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_LTE_CH_MTCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a67c880784d3127d18127f9a42423652c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_LAPD</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a6171bb6ab16243ef4d4cfbd539836ec1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_FR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad4dedcb459905cd2fabb2fa4803838ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_RAW</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adeb9d1d18922c5177b4bc7eb7935371c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_TRAU16</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a525b27d8a220624ffd8b9740ae81eda9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_TRAU8</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>af22c6e0bcc5edfb230c04562b6052b5f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_V5EF</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aaaf446f54f9311eb974f35b622c76014</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_X75</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a3fdfef2989ab9af47278cb564ac0f74e</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_V120</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a1390bffefa1fcf8843712a831e2c8bfd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_V110</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aa4e4d32110b11893d3a1c3f82c6cb6b7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_H221</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a2b19eadcb2c80c1969fdb772af6d5eb1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_E1T1_PPP</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a64fdfe165866274b9a18e5c3b2da81eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_ARFCN_F_PCS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ab7816edfea9a9c1edd306c11eb3972fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_ARFCN_F_UPLINK</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a18baf6e04e58b611c015652b9ecf30f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_ARFCN_MASK</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a43ee543cd7e8a6e52b172b6a8c85251c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_UDP_PORT</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a8db05adec28e12ed9d5afc41592688e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_DL_DCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ab031f4533874288ade7833ec76d05d3c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_UL_DCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a1a3a3718008510ccbd0927939e37afd7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_DL_CCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7aa72d51500388e509b5182826afd30020</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_UL_CCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a3093c92911bc0eba3ced487024345822</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_PCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a27a8c7c583981294368b1967fb87c48d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_DL_SHCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a4f2b39589fc3fdd56741523b283f5680</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_UL_SHCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7af6945b17403a39aa3236e2e8f271afdc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_BCCH_FACH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ae112401440039d1b8897d85ccbbd2beb</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_BCCH_BCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a407c37cc7abceb71305a367d006b8572</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_MCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a632ea204298221cfacfa48000948ae27</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_MSCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7af7e333caa28c34d4059c06c592e5e667</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_HandoverToUTRANCommand</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ad5125d549a93d929d6c17f106499f41c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_InterRATHandoverInfo</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a23c90e9339264c347e73e1896a3a8d22</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SystemInformation_BCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a26ac98a5ef182d8994cce14c9bebd0f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_System_Information_Container</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a07c12214ef89d741779a60430c35edfa</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_UE_RadioAccessCapabilityInfo</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a7f62230330d50b1476f5710d356bb520</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_MasterInformationBlock</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a1e2996f829e5a42623e7d4ab4c1259a2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a9561b31a5ce4a4510a3a7f44851e9799</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType2</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a34c2720f1a0bd1f26c61ce4ff22976bb</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType3</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a1a2b896b436dc36f8006503b2815dcc0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType4</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a16b23fd93a0021439d09ea5c86c02914</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType5</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a5265e6843364a3c6545c5f87a829a0f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType5bis</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a375471c228da838f8b8b91a6bd913d04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType6</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ad89f84dc511566eaf71dd6cceaca6a99</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType7</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a542201850adf8cbfc50a4604cb76a048</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType8</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7afefea5630da298084fe587d66467eb1b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType9</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ae00c65aa4c39786090b12f675dea2786</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType10</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a82db1eed4d14e81f006f4a5fae247598</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType11</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a17fa1ab4ea3f93162f859e640767e773</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType11bis</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a162f7d39a63b7287715d2290827c8014</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType12</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7acc09b86b543fdba7d6f0078536aaaca2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType13</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a4e4606f0b569853499b5c9656f406845</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType13_1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7af1f581c229bbb0ce96ca2c0f0bf71a46</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType13_2</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a070b5ad741fd20dc3cc490ce0db4e615</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType13_3</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a5c405f061fbe111ac09502ed1052d2b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType13_4</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a84db3dbabd102621fca340746166d64f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType14</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a28abf7ecb203b8764eb3982df3dc0d83</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ad64947dcd939fc770c6968297b9a0112</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15bis</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a582e26c8bee326d5be30eab663acfaf3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ac481c2a700c33a3351907a2a2ef39c8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_1bis</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a5d3a2b6147d03a116634e09e72152769</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_2</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a365bcc94aef0e8332a665ddbfa66b922</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_2bis</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a60c0b15bd4eab794c63cf998e3a51510</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_2ter</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a6e257db9ad9d55fc8668622b7eb23010</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_3</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ab3cb4d69344df931eadc4ad0973995bc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_3bis</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ada5e20914afaf87a787dea3cda6e0106</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_4</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a4e9b0954530afcf69d22c8195b7767e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_5</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ac90b05baa5f637d45af691fa797a9cab</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_6</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a388970527e5831dfcfc18603456994c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_7</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a17c3d0bde7d6a5944a46976d0302888e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType15_8</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ad9d8830462c3123c07e8761cfc9495a5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType16</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a1b8f08e057bf1cd74709305c05d25ff9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType17</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a954c175d2c0fb80da5958dd3ae5414b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType18</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a06bf2234faa27c331d533f6a3f4c6b23</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType19</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a90ea69ee109882fda0b26e7ea1cdbfa7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType20</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7ad6885089c00e549d3da75b45eae72853</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType21</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a0bc41bd8686cef0ed549f1ca5fbcf4ba</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoType22</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7aac8b3a243e4cea60c130c535ea94c00a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoTypeSB1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a03c228e5aa8910c813664444467810f5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_SysInfoTypeSB2</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7adaa6d15867a4c90a4966cb3b2555e160</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_ToTargetRNC_Container</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a96c27b1d442f853d6b06470b4a90fc36</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_TargetRNC_ToSourceRNC_Container</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a4da839f5f38ac2b96af61d29511e0c66</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_RRC_SUB_MAX</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adf764cbdea00d65edcd07bb9953ad2b7a2b277cde351bcd2d13c44818cf1e4924</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_DL_CCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a28510b8b4baea4a2b31bc6f424d4c99c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_DL_DCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a50f1189b365aa0c175357e3d2e975b03</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_UL_CCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a6425c21c79effd4b05a17ee1427d2ba3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_UL_DCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a89503a5454bce0029a0337f87a8235b0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_BCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5af99e61ecb0aa6998f6cf088db6ee0dfc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_DL_SCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a7612b8a0ad7a94058ffeb70363c0133a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_PCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a91cbf61cde02b56c320fb71102c0ab55</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_MCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a09d83be3b069681c4ba15c1ab87c7804</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_BCH_Message_MBMS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a55b1c955f97f78042cfac54eff616de0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_DL_SCH_Message_BR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a1a20d97f86dd2d9f982544d80c5c8b02</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_DL_SCH_Message_MBMS</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a6cc396ca66b4ea22c33daff9a9cf4b63</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_SC_MCCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a633d77f137481dd6d1bc3756d4f2bd6b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_SBCCH_SL_BCH_Message</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a44b8f711993cc8f224c88f23f2b49f4f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_SBCCH_SL_BCH_Message_V2X</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a539046ccc1c7077e43b04bdf99e45823</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_DL_CCCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a2e4872e6fa30df9b40e634bb68fe035e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_DL_DCCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5aab543603e8139ec21df5b5f8f92393e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_UL_CCCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a566ce53b8507c58c47c522f6277f9250</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_UL_DCCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a803ddfd33e4e8f52e58d6edc3bbd9e2d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_BCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5ac8dde45791136bd8d4df6ecccde2f019</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_BCH_Message_TDD_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a0adccefde4114d606bf8f059923ad807</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_BCCH_DL_SCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a47d4d7fe0908eb26b87996fc78b2c3ad</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_PCCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5ac1efb73b1050a8f124e461acc75bb852</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_SC_MCCH_Message_NB</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5af7aea0c6775e10323699e4a4153c8bcc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_RRC_SUB_MAX</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a99fb83031ce9923c84392b4e92f956b5a54d403de52b7f16aa8c0c05ad58c39d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_NAS_PLAIN</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abc6126af1d45847bc59afa0aa3216b04afbc8c5258a122a1f10617bdf301a9978</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_NAS_SEC_HEADER</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abc6126af1d45847bc59afa0aa3216b04a2e6c928fdc42eaf5774b9433f492bab8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_LTE_NAS_SUB_MAX</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abc6126af1d45847bc59afa0aa3216b04a1fc0e602744b50feb636701cb763f707</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>gsmtap_um_voice_type</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_HR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9ad617dee776a3d9b99d21634771c2c7c6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_FR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9ae9d324e6164e36189811811d410fe8a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_EFR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a72ecd9612136474e0015f429c094cbbc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a7645f5288bcd49021d21b84ddad390f9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_SID_BAD</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9ad60d2ab32beb1e10d026cd142a63669b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_ONSET</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a4ec17e9a197e9ceedcba78581e1b63de</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_RATSCCH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9aa5159b8c1887fa1826f0aa7ec191d1eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_SID_UPDATE_INH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a30db19b8f3065851b92024b2981e7026</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_SID_FIRST_P1</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9ad0ce351c8a6eff774d3b9ec767288096</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_SID_FIRST_P2</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9ab5eec005456db3d1d4c76268fda5bdec</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_SID_FIRST_INH</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a79a3574cab3ec92e5e889ca146ae11e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_RATSCCH_MARKER</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a97192c0e62aa851c72becb5b74f1489f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GSMTAP_UM_VOICE_AMR_RATSCCH_DATA</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a32746df3f332bb431908704613166fe9a08626ffe1154345b8ae84d3be459e865</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>version</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ab22abc2906422da61885ac6c8e6a1a59</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>hdr_len</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>adb7c2e546c05e4b147acd396ae594396</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>type</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a1d127017fb298b889f4ba24752d08b8e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>timeslot</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a37fa47dff193b952727a044c66718acf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>arfcn</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ae47d6bf4a702d6e5d0875693194d8373</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int8_t</type>
      <name>signal_dbm</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aede0b10bd33472950ab2153bb896817e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int8_t</type>
      <name>snr_db</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a453ed986215416bdfd8502dd5a2b4910</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>frame_number</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a57cc7f4d579276167efca6cf047839b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sub_type</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a1a2a5c6b28c6a619536d0b2250167609</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>antenna_nr</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad8efa0c4c2acba3fa03a54b82ee8eeee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sub_slot</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a29974f21be6fb35cb2b3c92f735b108f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>res</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a29850f3918435f089b2e206b9da59936</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>sec</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aaf5f5a3fa5d596a9136b4331f2b54bfc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>usec</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a400aa5c8c3b57ac30b6c9090f46cbdd7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct @6</type>
      <name>ts</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aacc0eec328b2bbc6d4259c230516e609</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>proc_name</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a74d31d112440ebc015278c64cce0ed9e</anchor>
      <arglist>[16]</arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>pid</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>aec32162d9dc3fde2c76d766af522dae5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>level</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abbb6c7c49508c1ac374683f2d1159e08</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>_pad</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a4222f9e79132af2040d0ccaa7aad0b47</anchor>
      <arglist>[3]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>subsys</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a0256c9929c7f63004cdcb9ee29f3ef13</anchor>
      <arglist>[16]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>name</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abc1e86d7c344fe34ff09e72d4595ab7e</anchor>
      <arglist>[32]</arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>line_nr</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>ad086eea83d5646a9b756435887bf759d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct @7</type>
      <name>src_file</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>a2a6e4baad0b5d54944cc80100bdf7396</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum gsmtap_um_voice_type</type>
      <name>__attribute__</name>
      <anchorfile>gsmtap_8h.html</anchorfile>
      <anchor>abfa272885d73131c2dfbb14e7909a2d0</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>gsmtap_util.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>gsmtap__util_8h.html</filename>
    <includes id="write__queue_8h" name="write_queue.h" local="no" imported="no">osmocom/core/write_queue.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <member kind="function">
      <type>uint8_t</type>
      <name>chantype_rsl2gsmtap2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga2fa99893aabc3b82458803a914fee39a</anchor>
      <arglist>(uint8_t rsl_chantype, uint8_t link_id, bool user_plane)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>chantype_rsl2gsmtap</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga14574d2d831766b848e5ff93b89e8338</anchor>
      <arglist>(uint8_t rsl_chantype, uint8_t link_id)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>chantype_gsmtap2rsl</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga3567072c254391b92eabf48ed71f9aac</anchor>
      <arglist>(uint8_t gsmtap_chantype, uint8_t *rsl_chantype, uint8_t *link_id)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gsmtap_makemsg_ex</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4de6489fab3bff7590e53dd9859e3c44</anchor>
      <arglist>(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gsmtap_makemsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga03a4ac0d6f7a80807415476fdc804da6</anchor>
      <arglist>(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_inst_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gad201f805caa17a143201ecce09a21208</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_inst_fd2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gade1327e89e4b4fe0e08bf9947ec99a04</anchor>
      <arglist>(const struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_init_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gadd7e1c24b0af2f07c1df3ef12fd2a3b3</anchor>
      <arglist>(const char *host, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_init_fd2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaac97f186f5b781a7f15bd9273e2821b0</anchor>
      <arglist>(const char *local_host, uint16_t local_port, const char *rem_host, uint16_t rem_port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_add_sink_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga0edfda6bec2d5b85a6b97823c806f676</anchor>
      <arglist>(int gsmtap_fd)</arglist>
    </member>
    <member kind="function">
      <type>struct gsmtap_inst *</type>
      <name>gsmtap_source_init</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga8f0bdeba378d233f34057e63e2d3a6d3</anchor>
      <arglist>(const char *host, uint16_t port, int ofd_wq_mode)</arglist>
    </member>
    <member kind="function">
      <type>struct gsmtap_inst *</type>
      <name>gsmtap_source_init2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga3e9f314f1a5098f65770a8616d5cac56</anchor>
      <arglist>(const char *local_host, uint16_t local_port, const char *rem_host, uint16_t rem_port, int ofd_wq_mode)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gsmtap_source_free</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac12a6850de80b00a9ce4ab1261a67a55</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_set_nonblock</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac018ffcd4a62f619259e6c7fceb8d9ba</anchor>
      <arglist>(struct gsmtap_inst *gti, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_add_sink</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga08387e8de5e7633d897cd6c2f685a467</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>gsmtap_source_using_wq</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga847f5c0c8e5e9e7f9755c0dd573a7dfe</anchor>
      <arglist>(const struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_sendmsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga41ee3b7cd837968637a122aa83ea5af3</anchor>
      <arglist>(struct gsmtap_inst *gti, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_sendmsg_free</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaa05d2bb112ac9d2d80ed7dfe2926c519</anchor>
      <arglist>(struct gsmtap_inst *gti, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_send_ex</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaa998fa989a15883ea67ec5eea58a9283</anchor>
      <arglist>(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_send</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gae1e4e260037809eb70765c3c6044a2e4</anchor>
      <arglist>(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_gsm_channel_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4f9601754c2db0434194ebdf0742ccb9</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_type_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac6ab8513b1e0e8505b89847a4f9a4a09</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>hash.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>hash_8h.html</filename>
    <includes id="log2_8h" name="log2.h" local="no" imported="no">osmocom/core/log2.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>BITS_PER_LONG</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a2f660aa23a5dbc0f4b8df48b4302b8c3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_long</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a2687e31a7b8915a3ad27c4aa5066bd4f</anchor>
      <arglist>(val, bits)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GOLDEN_RATIO_PRIME</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a40b36924d64ce9b58066e36266492495</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GOLDEN_RATIO_32</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a65cdcd6d7314769ffc01484117bc9e2e</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GOLDEN_RATIO_64</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a90294bf3a21e2c26fb3bf5408d726457</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>__hash_32</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a8d8d1dce869119a8be21a94e2ba8d756</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_32</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a262e86a8f2ea036b6c1107c113e378fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_64</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>aff1ae1ab81c6a054b1395aaa2a40c9cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>__hash_32_generic</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a32d25ef21bd45fc07811b594025a23d9</anchor>
      <arglist>(uint32_t val)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>hash_32_generic</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a3492a17d6073a1733d9e306e7574c5e1</anchor>
      <arglist>(uint32_t val, unsigned int bits)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline uint32_t</type>
      <name>hash_64_generic</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>ad9826d4f2fad1021bc2594e2d1ace86e</anchor>
      <arglist>(uint64_t val, unsigned int bits)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>hash_ptr</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a9bd996302254713d1f73c93bf778698e</anchor>
      <arglist>(const void *ptr, unsigned int bits)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>hash32_ptr</name>
      <anchorfile>hash_8h.html</anchorfile>
      <anchor>a531a8a683d8cd7d9f5e9fb4b00171fca</anchor>
      <arglist>(const void *ptr)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>hashtable.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>hashtable_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="hash_8h" name="hash.h" local="no" imported="no">osmocom/core/hash.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>DEFINE_HASHTABLE</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a43705d0172283e68e89a74f155486058</anchor>
      <arglist>(name, bits)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DECLARE_HASHTABLE</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>aea57b868a0088ac159518f6be812569e</anchor>
      <arglist>(name, bits)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HASH_SIZE</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>ad1ce2da85d284fbc14e9192b36ff4e9f</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HASH_BITS</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a685993f49fd05df2e53c9e3b0def928f</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_min</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a563b466ae0807988b2c78686ebe6fc68</anchor>
      <arglist>(val, bits)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_init</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>aae9c1a12353e78fee6002a93ac29fbda</anchor>
      <arglist>(hashtable)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_add</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>afbc4fbecc911ebb341099133827dc804</anchor>
      <arglist>(hashtable, node, key)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_empty</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a255106554d807b733a38195cfcf11279</anchor>
      <arglist>(hashtable)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a3546403fdb77a5ebb8a48863776f8bfd</anchor>
      <arglist>(name, bkt, obj, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each_safe</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a5cc3f5cd60a35100c9c4b1486553e4f5</anchor>
      <arglist>(name, bkt, tmp, obj, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each_possible</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a35414f669cf86a08128f5dc7f81f4164</anchor>
      <arglist>(name, obj, member, key)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each_possible_safe</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a8c4248acd9c1bbf9bfea0f5ca549d317</anchor>
      <arglist>(name, obj, tmp, member, key)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__hash_init</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>af206b6fc1e929ea73928c3e209ab567c</anchor>
      <arglist>(struct hlist_head *ht, unsigned int sz)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>hash_hashed</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a4be7b340dad5a56e5d255815445bd9a7</anchor>
      <arglist>(struct hlist_node *node)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>__hash_empty</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a34ed811be03f9bba1826a86dee49fbeb</anchor>
      <arglist>(struct hlist_head *ht, unsigned int sz)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hash_del</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a2a182ec8baf498309485cec53ab687b9</anchor>
      <arglist>(struct hlist_node *node)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a3546403fdb77a5ebb8a48863776f8bfd</anchor>
      <arglist>(name, bkt, obj, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each_safe</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a5cc3f5cd60a35100c9c4b1486553e4f5</anchor>
      <arglist>(name, bkt, tmp, obj, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each_possible</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a35414f669cf86a08128f5dc7f81f4164</anchor>
      <arglist>(name, obj, member, key)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hash_for_each_possible_safe</name>
      <anchorfile>hashtable_8h.html</anchorfile>
      <anchor>a8c4248acd9c1bbf9bfea0f5ca549d317</anchor>
      <arglist>(name, obj, tmp, member, key)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>isdnhdlc.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>isdnhdlc_8h.html</filename>
    <class kind="struct">osmo_isdnhdlc_vars</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_HDLC_F_56KBIT</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>acec3d6758ab5b2c1dd2d9d7c46c29905</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_HDLC_F_DCHANNEL</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a918fed49abc9e93630fe0153cbaffcd0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_HDLC_F_BITREVERSE</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>af7b5ae113e9012c6c8c2279064e97801</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_HDLC_FRAMING_ERROR</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a14341be0f0258c3be70cf859d8a50cd4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_HDLC_CRC_ERROR</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a24a5ef2e6d89c76e137dbadd829d37de</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_HDLC_LENGTH_ERROR</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a5dc56dbb97b0b1a761afdbb1a28ecacc</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_isdnhdlc_rcv_init</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a98822a5ed1411cc5e7261f1e1e991152</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, uint32_t features)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_isdnhdlc_decode</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a7b51c27274ca2cccf23b4e868c7b6710</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, const uint8_t *src, int slen, int *count, uint8_t *dst, int dsize)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_isdnhdlc_out_init</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>abe1a5cfbb77cc0324b1ac506cbc8967d</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, uint32_t features)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_isdnhdlc_encode</name>
      <anchorfile>isdnhdlc_8h.html</anchorfile>
      <anchor>a1b8eb0afa747804742eab4c1d59494c2</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, const uint8_t *src, uint16_t slen, int *count, uint8_t *dst, int dsize)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>it_q.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>it__q_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <class kind="struct">osmo_it_q</class>
    <member kind="define">
      <type>#define</type>
      <name>osmo_it_q_enqueue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gab56762c36042bee31d8c139ec5786012</anchor>
      <arglist>(queue, item, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_it_q_dequeue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gac4c85de6f1554e11e03e5c434f1778c3</anchor>
      <arglist>(queue, item, member)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_it_q *</type>
      <name>osmo_it_q_by_name</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>ga2a954821a905521aa4e67f894a64c81a</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_it_q_enqueue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gab463ae4d46ba05c307b17243d2d551b1</anchor>
      <arglist>(struct osmo_it_q *queue, struct llist_head *item)</arglist>
    </member>
    <member kind="function">
      <type>struct llist_head *</type>
      <name>_osmo_it_q_dequeue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gaf52c8ef0c149718af5117aff6141b9d4</anchor>
      <arglist>(struct osmo_it_q *queue)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_it_q *</type>
      <name>osmo_it_q_alloc</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>ga25f651a278991ee6d95db37ecf811203</anchor>
      <arglist>(void *ctx, const char *name, unsigned int max_length, void(*read_cb)(struct osmo_it_q *q, struct llist_head *item), void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_it_q_destroy</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>ga421df70ee9051af51af594b9fa2d48ff</anchor>
      <arglist>(struct osmo_it_q *q)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_it_q_flush</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gae3db370ece9fd33310bc3311cd3830e4</anchor>
      <arglist>(struct osmo_it_q *q)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>jhash.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>jhash_8h.html</filename>
    <includes id="bit32gen_8h" name="bit32gen.h" local="no" imported="no">osmocom/core/bit32gen.h</includes>
    <class kind="struct">osmo_unaligned_cpu32</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_JHASH_MIX</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>a1781b7bf17ac19cd2bba7d36929455f9</anchor>
      <arglist>(a, b, c)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_JHASH_FINAL</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>ace92b14ebb5a376c7f379d97f9d0bdd3</anchor>
      <arglist>(a, b, c)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>JHASH_INITVAL</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>a30719fa01864f1c0d625b0c8f9c452d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_rol32</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>a4e7d955108efa003ae2b5485cca4450a</anchor>
      <arglist>(uint32_t word, unsigned int shift)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_unaligned_cpu32</type>
      <name>__attribute__</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>aa5d1ad1bcbb1bcf8ecb0b48d444bacaf</anchor>
      <arglist>((__packed__))</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_get_unaligned_cpu32</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>aa4e572e223c95fe41e71b40c0540d170</anchor>
      <arglist>(const void *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_jhash</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>a300e8c1fafb2446940eeff90c148d992</anchor>
      <arglist>(const void *key, uint32_t length, uint32_t initval)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>osmo_jhash2</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>a91ed52d475321230d7b8fcad13403a9f</anchor>
      <arglist>(const uint32_t *k, uint32_t length, uint32_t initval)</arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>x</name>
      <anchorfile>jhash_8h.html</anchorfile>
      <anchor>aae8a40a17c0be29c1f06ca6b4f9e2235</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>linuxlist.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>linuxlist_8h.html</filename>
    <class kind="struct">llist_head</class>
    <class kind="struct">hlist_head</class>
    <class kind="struct">hlist_node</class>
    <member kind="define">
      <type>#define</type>
      <name>inline</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga00d24c7231be28dbaf71f5408f30e44c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>container_of</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf8c317a42292b61c93aae91e59118a46</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_POISON1</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga0945ceecfc9982e1de4da25f22f180a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_POISON2</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga0fe7e42a7c409f572ce9b990cc77f5e7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_HEAD_INIT</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga01c9f49fcdc7c0b638ad0ff036a2844b</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gadff448c2a512f7f3b1189890d6d6c18a</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INIT_LLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf2e921d75d05e3a076227eda0bbd178e</anchor>
      <arglist>(ptr)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga1f84e98f938d62c8fbef26c9c7ec65c2</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_first_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga240a0e12a637f199fb292a768b405de1</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_last_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga79bdc7c0caf3ce7897d70f68959e437f</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_last</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad7a9c2c7851364a00ccdbf43fe3ff3ef</anchor>
      <arglist>(head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_first_entry_or_null</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga187d083598595d78dc75e8041f21a665</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_last_entry_or_null</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga68f8b64fb9c4b47214edeed13d9fc284</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad96d676e71584c976305ee8a2e4dab8f</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>__llist_for_each</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga2a514bf76d1cb343501cdd9cca2417f9</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_prev</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga77afb9242115b298e62d1bfd46b66588</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga6cf45244851380bd1bb556e22390a792</anchor>
      <arglist>(pos, n, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga97345a3f2569e1fcc0948706602cedd8</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_reverse</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga7a24286ee8e7fb99316d4f9e4c700869</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_continue</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga19392005a8891cc3bc6919f0d9109d40</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga50f1dafb9de33a121a8fc253634d14ca</anchor>
      <arglist>(pos, n, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga6c63172418c37e36295c76256b5bfa22</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>__llist_for_each_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga475083462225f0e64d957390b42e85b0</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_safe_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga46585966f20fc18b5646c6ae7c199bbf</anchor>
      <arglist>(pos, n, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad6b23cdc35214b094c05b12bf5e2f6bc</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_continue_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaa7b1ce77d0c251afd378010c89eeda72</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HLIST_HEAD_INIT</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga68283f4abad271853d5b25ad697b1b06</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga5110612fedc3e1b54fce4c2143c4c788</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INIT_HLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga502bdfb9a4a5a0d922363ea1708bf081</anchor>
      <arglist>(ptr)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>READ_ONCE</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga940c919f63536812538bdd9bfab47267</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>WRITE_ONCE</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga866ec3a3adc4638dcef76dbf3d365331</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae6c5fc3a7207aad6b8ea756eaa8bb043</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gac971440486bd1084a2b110f53a9ad3b7</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga0ac51eeb1d38e770546acbe88d566211</anchor>
      <arglist>(pos, n, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_entry_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga9aba32f6dc43ee54db1eebd61df58fb0</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga3782c1eea66f5cacadce6e0175e4650a</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry_continue</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga14191525c74317c1eac2b2384f4027e4</anchor>
      <arglist>(pos, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry_from</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gac2dd974efde450fd9c400aa45b39cee5</anchor>
      <arglist>(pos, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae2f7dd7dbbe2f13fa51aca9fcb31a03f</anchor>
      <arglist>(pos, n, head, member)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>prefetch</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae275c0b0ac104e39bc5980a08925ecee</anchor>
      <arglist>(const void *x)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__llist_add</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga27748bed605feed610e4cabb92cc69a8</anchor>
      <arglist>(struct llist_head *_new, struct llist_head *prev, struct llist_head *next)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_add</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga5f132e77289bdaac056f40281dad2158</anchor>
      <arglist>(struct llist_head *_new, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_add_tail</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf20ef02827bff46a825aee413b8817ad</anchor>
      <arglist>(struct llist_head *_new, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__llist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gafd6d2db9c63110be04db5421e66a64d6</anchor>
      <arglist>(struct llist_head *prev, struct llist_head *next)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad17c7ec79e2cfd08c7d7f5a455065d3f</anchor>
      <arglist>(struct llist_head *entry)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_del_init</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga34cd312e2bd3c6a9d6c2ee9f0edd614d</anchor>
      <arglist>(struct llist_head *entry)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_move</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gacb13d12e3ffb0a19db837b56c4df39f9</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_move_tail</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga4486dca126d71c055b4871bbed8e8b83</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>llist_empty</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gac458d7d13167c67bc3591038ef23405d</anchor>
      <arglist>(const struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__llist_splice</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga86930ef85d10c1acd97d858354bd5895</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_splice</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga2ce1fd536f10818240abdfe08a6d9385</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_splice_init</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga53109ddcf1c7c415bbec076e40ee5145</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>llist_count</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga00add30f39d6a125d5685dd666f30db0</anchor>
      <arglist>(const struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>INIT_HLIST_NODE</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga51c087ca2431577ad4f6f8cc77349b0c</anchor>
      <arglist>(struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>hlist_unhashed</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga7f946d296ab41ce808e96d529a4106d6</anchor>
      <arglist>(const struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>hlist_unhashed_lockless</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae3985ebce1eb0d0793c579a93a26d0d3</anchor>
      <arglist>(const struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>hlist_empty</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf610dde21167bf116937c81c393a229f</anchor>
      <arglist>(const struct hlist_head *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__hlist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga167c5c3fe3b88a3e499210033585c6d8</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaa7bb9806633e74fad4c0f4ba8d3ac850</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_del_init</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga2e00d6f98de0c25c46a7645a0b6f4d5f</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_head</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad7a242949abf03ff2ae417686a4451cd</anchor>
      <arglist>(struct hlist_node *n, struct hlist_head *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_before</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga254a79dcc8e7dd5662a4e67fcd04ed10</anchor>
      <arglist>(struct hlist_node *n, struct hlist_node *next)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_behind</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga1fbe29c1c50047605c98a600f98e5d2b</anchor>
      <arglist>(struct hlist_node *n, struct hlist_node *prev)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_fake</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga747b74cb99ecd18d18cc564449082121</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>hlist_fake</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga31635d5a90d316dc84c467035cf1faa5</anchor>
      <arglist>(struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>hlist_is_singular_node</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga731ab779ea3e4cd83b30d426343c4004</anchor>
      <arglist>(struct hlist_node *n, struct hlist_head *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_move_list</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf02cef831e71a3b292a603e8e79947c5</anchor>
      <arglist>(struct hlist_head *old, struct hlist_head *_new)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>linuxrbtree.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>linuxrbtree_8h.html</filename>
    <class kind="struct">rb_node</class>
    <class kind="struct">rb_root</class>
    <member kind="define">
      <type>#define</type>
      <name>RB_RED</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>aebf73e751fbdd4b625db308dbf04d0d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RB_BLACK</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a9776c921e63661755728d05e55484d0b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_parent</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>aaae92809c5b07a5fda0006a0d1350a55</anchor>
      <arglist>(r)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_color</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a0111f5e35de290b980d8e46fce6c8b76</anchor>
      <arglist>(r)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_is_red</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a1832867663b9506b87da92e1ee33644e</anchor>
      <arglist>(r)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_is_black</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>acd15e6c488eae84eb413571d3ca084cd</anchor>
      <arglist>(r)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_set_red</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a447d2625cdef78303039847c03504454</anchor>
      <arglist>(r)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_set_black</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>aadcb2e2b62b98d37398abdc1ca840f71</anchor>
      <arglist>(r)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RB_ROOT</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a0dc291988d7286d8dd4268066e9031a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>rb_entry</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>aedf476fcb61d6b2c7e77d811dfd9071a</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RB_EMPTY_ROOT</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a27d6d30750b25bc59c04ad79f048a035</anchor>
      <arglist>(root)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RB_EMPTY_NODE</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>ae8779d71fe4e4c61793191c23853b166</anchor>
      <arglist>(node)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RB_CLEAR_NODE</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>af4c227a753b17d11d05f88a986e06395</anchor>
      <arglist>(node)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node</type>
      <name>__attribute__</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a898bb3a0a36117a49b04f56ecd626f39</anchor>
      <arglist>((aligned(sizeof(long))))</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rb_set_parent</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a0a657d27da9f39593191077295040631</anchor>
      <arglist>(struct rb_node *rb, struct rb_node *p)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rb_set_color</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a3e6f547a5b2a8511dbc4f7d50ba5fb78</anchor>
      <arglist>(struct rb_node *rb, int color)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rb_insert_color</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a79c2b572cc73c5ea1a7362fa1b5ee460</anchor>
      <arglist>(struct rb_node *, struct rb_root *)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rb_erase</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a9018e2db66ec88ea4a879015ff6fb214</anchor>
      <arglist>(struct rb_node *, struct rb_root *)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_next</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a44b77ee4515e39837266e300dd1bc56e</anchor>
      <arglist>(const struct rb_node *)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_prev</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>abf905407a87847e0738bec0e384f87de</anchor>
      <arglist>(const struct rb_node *)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_first</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>abbe4cb6b24397ccc31f7dd013b7c024e</anchor>
      <arglist>(const struct rb_root *)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_last</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>acfdd2a0047e7285a3f23e38aee8f8312</anchor>
      <arglist>(const struct rb_root *)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rb_replace_node</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>aadd8f0e4b7d85f8bd922bd9287c94c68</anchor>
      <arglist>(struct rb_node *victim, struct rb_node *_new, struct rb_root *root)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rb_link_node</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a2b01db609bc68b3e23cf684eb36c38d7</anchor>
      <arglist>(struct rb_node *node, struct rb_node *parent, struct rb_node **rb_link)</arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>rb_parent_color</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>af69516773850d32a1a9127ac51272028</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rb_node *</type>
      <name>rb_right</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a8c6b55e0df2290c4a6dc500d25602258</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rb_node *</type>
      <name>rb_left</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a487048a96b8ad77c589ef1ac28933953</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rb_root</type>
      <name>__attribute__</name>
      <anchorfile>linuxrbtree_8h.html</anchorfile>
      <anchor>a9e944dcf7b9153307c910d2c22cd3cfd</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>log2.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>log2_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>const_ilog2</name>
      <anchorfile>log2_8h.html</anchorfile>
      <anchor>a0e7c5d1dd4692f218a831d07bca5c644</anchor>
      <arglist>(n)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>ilog2</name>
      <anchorfile>log2_8h.html</anchorfile>
      <anchor>a2696c6303d4c53b65a3a7f7ff771d5eb</anchor>
      <arglist>(n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>__attribute__</name>
      <anchorfile>log2_8h.html</anchorfile>
      <anchor>ae65d92d58bfeb475d2e2b2a66b2383bd</anchor>
      <arglist>((always_inline)) int fls(unsigned int x)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>__attribute__</name>
      <anchorfile>log2_8h.html</anchorfile>
      <anchor>a9d5473a6b33c7daafcf50f3849a40830</anchor>
      <arglist>((const)) int __ilog2_u32(uint32_t n)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>logging_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">log_category</class>
    <class kind="struct">log_info_cat</class>
    <class kind="struct">log_context</class>
    <class kind="struct">log_info</class>
    <class kind="struct">log_target</class>
    <member kind="define">
      <type>#define</type>
      <name>DEBUG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad72dbcf6d0153db1b8d8a58001feed83</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DEBUGP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab805322bc0052e2cb6b6a6557fd59e91</anchor>
      <arglist>(ss, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DEBUGPC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8d8fd840762ec476ed49951dc96ec486</anchor>
      <arglist>(ss, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga7e3a9f703edc9b95a8548a656a6f686d</anchor>
      <arglist>(ss, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga480d46b69590f6adcb75297ccc00a59e</anchor>
      <arglist>(ss, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPSRC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa3186473e49541f29bf4fca6ecca6df3</anchor>
      <arglist>(ss, level, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPSRCC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga211311153adb5599da85c35546511952</anchor>
      <arglist>(ss, level, caller_file, caller_line, cont, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_DEBUG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabe173829fa5e5a0f0f1a6d897c332ff0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_INFO</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa379189a8b3f928c55c3f4a43e65f625</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_NOTICE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga176a1eddf217572b01568c9ffbaa92fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_ERROR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga5751e2408c2e9aa0b93aef4aa6a24227</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_FATAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga567dc7ed188fed7155178c6aaaf885b7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLGLOBAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4aea31ac198b5eefe88ee0d64f4465e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLLAPD</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac508d5acedd3198df1b0ddab0fdad4a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLINP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab52be37317ff7f1d004ad5cbbfd89a8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMUX</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4fdc5cfc92a902e01350aacbb8cf4f48</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMI</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga01e56d7b252518f706567706c6a2c54a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMIB</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6203cfc0a9d21c35e5a7cc3d217e8c35</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSMS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga672be81f15ed0aec6f1ee432943c2f55</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLCTRL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3be909c171763843e95a8c4bc8a4c65d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLGTP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga367dece4d3de29a2ce0c66a67ec383cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSTATS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac44cdefa09f9f1edb9c324c41aae0dd1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLGSUP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8fbfba066a0152bfbfbc8a35d6a67ae6</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLOAP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga16cc6c43c63789dbd3840b3b00b04b90</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSS7</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6589b380650facce31dcf506403b286a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSCCP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga93f292ab464aa522d229d711a9dbf772</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSUA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabd33cb9b8a0c705a64eb145132507369</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLM3UA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9911d8286e13f99ca8e92481fcab3d61</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMGCP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa27eeefc2f66410acdc1ff368cac9fa7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLJIBUF</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8333005c126c0cb33615251a662aa537</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLRSPRO</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacfe520078597b9d7952bd81b97824733</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLNS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6360f368240b0c26f7e6dd99b9e796cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLBSSGP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga243e175dd08dbeedc1615f285fa8dcd5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLNSDATA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafdd2f851a16a7fa99d157caac09d6678</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLNSSIGNAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac296e000fa136e0c02102d35f01e95e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLIUUP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac86177c4f636081406dc5f42cde3bf18</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLPFCP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga26edc4492cf33f9aba13ccdd6a854013</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLCSN1</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0f6410121e1d40e6b39a9defc3cda48a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLM2PA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6d98f805933df6b05a309d470020e0f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLM2UA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0adb569cdb9b1f96980e9e3a81e4fb6d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLIO</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae2026d3ccf7e9ca34e3b2f9e9479ed36</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLTCAP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9a56876b96c90e2a88c4cfdd71145cb8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_NUM_DLIB</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaecab053fad9c276e06d38883e054a35d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_NORMAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaeabbb50a435e0776a956c44effa97c80</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_RED</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gada088eba1c7ec85201b0d7827e231818</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_GREEN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf6aeeabed9a289ec900ab054ca42a880</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_YELLOW</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafca3dd5f88c08e8541b520d8ce73a124</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_BLUE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab1d4482277ab53e471965a61d033c59a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_PURPLE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6c51b4bf79120aad0b42105684655733</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_CYAN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga39b88ca09448a54a65bf36c8d945e5c4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKRED</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga22dbdc0364aba55e3d4fafedb0a4e68a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKGREEN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa7c0a44147d0112e608a34a67ec06279</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKYELLOW</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga72ebb25dc8d4f668c3ac1c6af6c8b7ab</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKBLUE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9eb6b26833e7283a7b4c95c00f5c75e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKPURPLE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga176ea715c3e9759f46812c6556bae5f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKCYAN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad38cd2f97c66366a1ea07627682af607</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKGREY</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3726ef8ce24622ff62985f7de3841acd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_GREY</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3187fa245f134300fb813201fb3adf4b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_BRIGHTWHITE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4e6cf007df2991f502ac861dec2bad3c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_END</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1c6a567286ae79e3dc219957760b635b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_MAX_CTX</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabaaa5069968fda58cf87533e5118e19b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_MAX_FILTERS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga66d98e30d290f9a0d3d6569d8403ee9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_FILTER_ALL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga161ff4636148f95a9ed46c5abbd0a7bc</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GPRS_CTX_NSVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaadf767e191da5f43f26eb8d08b5a6557</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GPRS_CTX_BVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga2767cd96c5606f6f01b61306aa18dac3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE_LOG_TARGET</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga5a3f500c1e074b4801ddc4abef44e670</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_MTX_DEBUG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga7686f40221c336a9435bef4373b53acd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>log_tgt_mutex_lock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac6cbd7eddb65044f30ff543a421ae495</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>log_tgt_mutex_unlock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4070dabf4652e43fd6929fb259a6fa92</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="typedef">
      <type>int</type>
      <name>log_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9aa9411ab93da3b2638bdb5a7689f43f</anchor>
      <arglist>(const struct log_context *ctx, struct log_target *target)</arglist>
    </member>
    <member kind="typedef">
      <type>void</type>
      <name>log_print_filters</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga50a6f260b056b50b322cf32215ca5a6e</anchor>
      <arglist>(struct vty *vty, const struct log_info *info, const struct log_target *tgt)</arglist>
    </member>
    <member kind="typedef">
      <type>void</type>
      <name>log_save_filters</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6684cf1a2e24cc41a5d2ad526d43e0e3</anchor>
      <arglist>(struct vty *vty, const struct log_info *info, const struct log_target *tgt)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_ctx_index</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0b31990f947ded850132fde88eac7269</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_GB_NSVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269ab2b2f65564b8cb93e38408efb8e552aa</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_GB_BVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a499f33e1bba1584a3a79a57331219fe0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_BSC_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a431e5ed8bf229489e36d9a97ed4313a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_VLR_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269afee9d2f4cf2c54e572bb727629d47888</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_L1_SAPI</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a953a8aa7359e6989f7a6f44df15a78b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_GB_NSE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a28bca66c7dc4e1d74fcd6a05fa2af41a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_LOG_CTX_COUNT</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a5b769eab13b25bf7b21a07da3cb4091e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_filter_index</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga06c744d8d9104f275d8b8568c09fd144</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_ALL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144ab84e1400c3d6394a42c59ebb5804d35f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_GB_NSVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144af1c6cd3bc83977353ed364f5f74ac079</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_GB_BVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144afd12e35cc7bbb41874f8633d9ecca226</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_BSC_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144ad499c4019c93f32b64d4df742378db08</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_VLR_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144a4e168783da86b54fd539e99a6c506582</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_L1_SAPI</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144af2ce4663bf5459d7b8e5882b14ffc366</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_GB_NSE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144ab863c5978ee5ccb9f98a8fdeac515d16</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_LOG_FLT_COUNT</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144a882ba6ec04ed8ab3b8c2298812175e3e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_target_type</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1dc8e73ef848a7dda9388a78342c72af</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_VTY</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa5e7df050860657ceae54c6d8d53daaa6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_SYSLOG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa7e61ffe8cb20b4306d778f5fddca524d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_FILE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa79c80cbde04026a6d3ce81d52ce952f9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_STDERR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afaeb9f1a2e04ee58df0f8d382ecb9303db</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_STRRB</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa9fd43c1d92e6b696a6812e843e3c5ac7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_GSMTAP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afaf8eb416af6d948db3a2e82aaad21b051</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_SYSTEMD</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afafd02bcfbb8d4243a111bde615e812dfe</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_EMSCRIPTEN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa64fcd8801bf985cc4109ba5f4c43f538</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_filename_type</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab022087cde64deb9a1bae1624d774dc9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_NONE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ggab022087cde64deb9a1bae1624d774dc9a845f226b47312a372c394187f5de0a56</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_PATH</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ggab022087cde64deb9a1bae1624d774dc9a90a7382992c3cd103edc53a49e9cc365</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_BASENAME</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ggab022087cde64deb9a1bae1624d774dc9a48db77965785dadcff72df967e3b98f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_filename_pos</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6e0a93c1ec5d89bbeb811a03a8b03778</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_POS_HEADER_END</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga6e0a93c1ec5d89bbeb811a03a8b03778a61d25ea988748fb625f420d1b2ab393a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_POS_LINE_END</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga6e0a93c1ec5d89bbeb811a03a8b03778a55a9648e7b38f83759ea56e54c8d7102</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_vlogp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga607a4b06b2123605f3a3243307aeb7a2</anchor>
      <arglist>(int subsys, int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>logp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab324ed3d4a2cf52b7221f64f6e24ffa5</anchor>
      <arglist>(int subsys, const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>logp2</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae7c013af52c801dbfe79b8a8a3801c5e</anchor>
      <arglist>(int subsys, unsigned int level, const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void void</type>
      <name>logp_stub</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac80553bb76fe67acb9834a128700c12d</anchor>
      <arglist>(const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_init</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabf0d1770253db45f43db9344e950a724</anchor>
      <arglist>(const struct log_info *inf, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_fini</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab764c12d013acf2af98b24058a4bb894</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_check_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6fbd4bc9164c5f5460b1ccbc1007b890</anchor>
      <arglist>(int subsys, unsigned int level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_reset_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf69d0014231702905b70af36ba2161d6</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4e6b63f4ef308f052b63a439e6a49033</anchor>
      <arglist>(uint8_t ctx_nr, void *value)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>log_get_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab10cc1265ebf8f51f9b65dc35c25b004</anchor>
      <arglist>(const struct log_context *ctx, uint8_t ctx_nr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_all_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga472e144e4786d4622383e8040ee44d91</anchor>
      <arglist>(struct log_target *target, int all)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>log_get_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4f0d97c8156921df3f2a8c063cd378e0</anchor>
      <arglist>(const struct log_target *target, int log_filter_index)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga189d79d3a2aa169880a0645980cd6508</anchor>
      <arglist>(struct log_target *target, int log_filter_index, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>log_get_filter_data</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9fe4e643b7ff7ad82616f1b89d20dd44</anchor>
      <arglist>(const struct log_target *target, int log_filter_index)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_filter_data</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga018b6fc50500ca6c014a8669973290a6</anchor>
      <arglist>(struct log_target *target, int log_filter_index, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_cache_enable</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae486c7d4d9df85a56c39c357d5941d6b</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_cache_update</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaccccc6015ad7dac48806a1911c7bfac6</anchor>
      <arglist>(int mapped_subsys, uint8_t enabled, uint8_t level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_use_color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga30d608c01397ebfdf5ea3751a2d77477</anchor>
      <arglist>(struct log_target *target, int use_color)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_extended_timestamp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa7485ba761bb91b3b1551d0532c10255</anchor>
      <arglist>(struct log_target *target, int print_timestamp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_timestamp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaee1b4940beeafc3be87dade21fca15cd</anchor>
      <arglist>(struct log_target *target, int print_timestamp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_tid</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga322b5ead8114170321047a0a6cf62bdb</anchor>
      <arglist>(struct log_target *target, int print_tid)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3ba3b5fcc019f7359704a7a6ee212ed</anchor>
      <arglist>(struct log_target *target, int print_filename)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename2</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga878f19493806866c6dbf2d7741aaa9e6</anchor>
      <arglist>(struct log_target *target, enum log_filename_type lft)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename_pos</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4f59f85a6eeef26a90e9909e0f45419e</anchor>
      <arglist>(struct log_target *target, enum log_filename_pos pos)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_category</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1f27605b22a68418f3b1304cb347b3dd</anchor>
      <arglist>(struct log_target *target, int print_category)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_category_hex</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga37155c559dfa73b1a2d83746116326fa</anchor>
      <arglist>(struct log_target *target, int print_category_hex)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga46786df78108657560700c8d99f9a542</anchor>
      <arglist>(struct log_target *target, int print_level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_log_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga608bb905a1d46b3f30c91ab2b5c791cb</anchor>
      <arglist>(struct log_target *target, int log_level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_parse_category_mask</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4cc6ca4580aff12753717030c1e0ef23</anchor>
      <arglist>(struct log_target *target, const char *_mask)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_category_name</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8114da96a88591aa817c38f98c119be1</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_parse_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3b291716f99d275bc17aaba56668fa54</anchor>
      <arglist>(const char *lvl)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_level_str</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga72d0cddff0823055cf7dbf195f96bba1</anchor>
      <arglist>(unsigned int lvl)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_parse_category</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacacb1583518cb0b46d50cf5e98200f54</anchor>
      <arglist>(const char *category)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_category_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaac26114e404387c4ebcc5b3cee8bddba</anchor>
      <arglist>(struct log_target *target, int category, int enable, int level)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9f2aa41f93d7c8e659412640e9b03ea9</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_destroy</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6bbfb2ce2a9ba3dea3b3c1204485b719</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_stderr</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga08b710a69267b50b7c26e2c7e87e5647</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_file</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1521542d251917511aec7ae3feac5b05</anchor>
      <arglist>(const char *fname)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_syslog</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaeee882e225104fac94d0b8daa048e303</anchor>
      <arglist>(const char *ident, int option, int facility)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_gsmtap</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4efed74fd274a942527f6c311ff5d4e9</anchor>
      <arglist>(const char *host, uint16_t port, const char *ident, bool ofd_wq_mode, bool add_sink)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_systemd</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8ca192ef2740d2877292f2bec39a54cb</anchor>
      <arglist>(bool raw)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_emscripten</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabe28d07ee9c198435cef558e151af482</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_systemd_set_raw</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafe72f96e070180cbbf2073a9806c9259</anchor>
      <arglist>(struct log_target *target, bool raw)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_reopen</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3147a2bfbed44aef8b0789ae0d3b8acd</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_switch_to_stream</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae324d978485dd51ac8f0a1057418a249</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_switch_to_wqueue</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga117469c362a121ecbdd997a1c0612c6c</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_get_nonblock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcb3a96a6a8ffd6e74faa0945e451149</anchor>
      <arglist>(const struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_set_nonblock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga47da2593c68c4d97fe3d36f918189f92</anchor>
      <arglist>(struct log_target *target, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_targets_reopen</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3a0a25f7c25582eb297470a040bcaf0</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_add_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaef366d8dcc3243892af1a86825b332c4</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_del_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaef66f7f410135e85ab7d640969059e52</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_find</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacd942dd5269a031f3f94bfdb90b9dd22</anchor>
      <arglist>(enum log_target_type type, const char *fname)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_enable_multithread</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacf9953bad5917dc2e72507fbf4308df6</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_tgt_mutex_lock_impl</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1f4bbcd8f332fd3c10618257fd381aae</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_tgt_mutex_unlock_impl</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga18a5be7b0f60ed441b102f3ae81204ee</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="variable">
      <type>struct log_info *</type>
      <name>osmo_log_info</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga81945895aa832524afb8edaa9eb366d8</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging_internal.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>logging__internal_8h.html</filename>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <class kind="struct">log_thread_state</class>
    <member kind="define">
      <type>#define</type>
      <name>MAX_LOG_SIZE</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gab6bc945ce840e4f0a16ec0fb12acc1a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_WQUEUE_LEN</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gaf04b3072636350a4b12b5e7ece065c72</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>assert_loginfo</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gae3277bfadd5b4e5bc609d85a1c53b5e0</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_output_buf</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gad0f490cca66aa8e7c414ece6a0dc6b5f</anchor>
      <arglist>(char *buf, int buf_len, struct log_target *target, unsigned int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_file_destroy</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gae6561c1db02d391bc163096ed9e63444</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_log_ctx</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>ga637e5fb0ff764b323acb7caef1793dea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_info *</type>
      <name>osmo_log_info</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>ga81945895aa832524afb8edaa9eb366d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>loglevel_strs</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gaf6826ad1edc63df058816b245f336872</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>osmo_log_target_list</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gab166ed54cb9f811c3ca616533a964082</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>__thread struct log_thread_state</type>
      <name>log_thread_state</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>ga0ab25e0670db8f46e3bc1e1a4f68bf8a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>loggingrb.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>loggingrb_8h.html</filename>
    <member kind="function">
      <type>size_t</type>
      <name>log_target_rb_used_size</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gac9a845e64d56b9a0304adcdc20a8edad</anchor>
      <arglist>(struct log_target const *target)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>log_target_rb_avail_size</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>ga426cd3cb62e9f6c29ffa34624f131a7e</anchor>
      <arglist>(struct log_target const *target)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_target_rb_get</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gac5c43e52e67ec342d2a5542046219fc3</anchor>
      <arglist>(struct log_target const *target, size_t logindex)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_rb</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gabb32bbd39408f38bb623c92485feecbd</anchor>
      <arglist>(size_t size)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>macaddr.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>macaddr_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_macaddr_parse</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6b5f705acbbc2d4cb226b44af6da4c11</anchor>
      <arglist>(uint8_t *out, const char *in)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_get_macaddr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga570ff719ef3bd624bffa17e1ddba0f78</anchor>
      <arglist>(uint8_t *mac_out, const char *dev_name)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>mnl.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>mnl_8h.html</filename>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <class kind="struct">osmo_mnl</class>
    <member kind="function">
      <type>struct osmo_mnl *</type>
      <name>osmo_mnl_init</name>
      <anchorfile>mnl_8h.html</anchorfile>
      <anchor>afa1cb4b93b6a178b9f1152f7b1beec8e</anchor>
      <arglist>(void *ctx, int bus, unsigned int groups, mnl_cb_t mnl_cb, void *priv)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_mnl_destroy</name>
      <anchorfile>mnl_8h.html</anchorfile>
      <anchor>aa9759151d4d3fe75178a4e7786acef6d</anchor>
      <arglist>(struct osmo_mnl *omnl)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>msgb.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>msgb_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <includes id="panic_8h" name="panic.h" local="no" imported="no">osmocom/core/panic.h</includes>
    <class kind="struct">msgb</class>
    <member kind="define">
      <type>#define</type>
      <name>MSGB_DEBUG</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8cf2c52f02bf6e832d7880282a435a5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>MSGB_ABORT</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaf2a76423d5e8b648c05a7696f9cf6ed3</anchor>
      <arglist>(msg, fmt, args ...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l1</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5b0a3beb8ad95637539655d0bd2212e9</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaf159332606c2999a33ed73d9e874013c</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad9d9ef8e08a61b8d03226b1ba4a8fc99</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l4</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga86664d6dc1e139cd649c0ab743336e93</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_sms</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1394ee8d1bda46a881b3acaada40784d</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gac9c7c6bee757b6fb1b37a7148c743a0b</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l1_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae4117d0a0ab548f99f2e2e63117df032</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l2_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gac7c94c9cc0fabd46f4671aa629b0f714</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l3_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga48b26c6bdc8a8eba642efd7f1e0f5d4f</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l4_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga7cb914404304649bde1aa9cae7c3b494</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaaca88445376e3090c2e3762dc73ee458</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l1_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga386e61c1f2fbe123f1c52a94ec091e34</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l2_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae68671853cb54b9d698fb7d6d7f035e9</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l3_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga07dea4ee86de1f755a24f097f67eb1b2</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l4_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacdbe0cdde2775b1ea052f5bee44115f3</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae9b5b86e28d3e7ec69b5bb80ad8be0e2</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l1</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga55a2663d7da4d25b3939cf62798ff5b3</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga4f5b7ecc9c2d0d12ff2c72f8c172b44c</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1819185b9dd9a08c09508b31fd6cab35</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l4</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9de9fea11a097497aa33a401423a0cdf</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_alloc_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gabfa7361c6d26ec2726525828813b8081</anchor>
      <arglist>(const void *ctx, uint16_t size, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_alloc</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga25906d049cbad1bf2d5a785319268ea8</anchor>
      <arglist>(uint16_t size, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_free</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae48b55f6f4529aafb069eaa3fa1998f0</anchor>
      <arglist>(struct msgb *m)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_enqueue</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacb8dd9493eb7fc266ce159e3325c6504</anchor>
      <arglist>(struct llist_head *queue, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_dequeue</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gadf56eab1dbbb193b132c3dc6ba4222bc</anchor>
      <arglist>(struct llist_head *queue)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_reset</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5676421c50ed5d0049b53605fc5397ce</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>msgb_length</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga036077cd924b90a798cb3b6c5541a492</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>msgb_hexdump</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9a703fb35c8eafd88c6d0d20aef465ac</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>msgb_hexdump_buf</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8f7a6483386bf042668201f9e18b5a05</anchor>
      <arglist>(char *buf, size_t buf_len, const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>msgb_hexdump_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga529723f7c2ae10e4ebcf05f2890e2999</anchor>
      <arglist>(const void *ctx, const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>msgb_resize_area</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gab1ffdec5c9aa14709b9b10b0c3ad3612</anchor>
      <arglist>(struct msgb *msg, uint8_t *area, int old_size, int new_size)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5f79dffec24b16b92bcdb4cd19a8ee90</anchor>
      <arglist>(const struct msgb *msg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga3ff33cbd8eccd14d4c7766b8a2afeb51</anchor>
      <arglist>(const void *ctx, const struct msgb *msg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_resize</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae522e97ead0bf5a6331399a4ec91d58b</anchor>
      <arglist>(const struct msgb *msg, uint16_t new_len, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_resize_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gab30cebe53b874324e73e3cb56aaba015</anchor>
      <arglist>(const void *ctx, const struct msgb *msg, uint16_t new_len, const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_test_invariant</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga4b2dd2f9f18244da4014d89693e39927</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_queue_free</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9c04c785fc2ff39b85a47e915a39eab7</anchor>
      <arglist>(struct llist_head *queue)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_enqueue_count</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad1a243fb0f975bd5bc5942499f6fbb41</anchor>
      <arglist>(struct llist_head *queue, struct msgb *msg, unsigned int *count)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>msgb_dequeue_count</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8de928af0e7f70b214e7dff128fc23fe</anchor>
      <arglist>(struct llist_head *queue, unsigned int *count)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l1len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga6c906f4c3afd52d2813a9c9a50acdf48</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l2len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga62f1183fcbb03ae09b922a79b95528ab</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l3len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga519e9198fe06b0ea67ada65e77c5d7b2</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l4len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga23865301157c48a99407f62b3e178d06</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_headlen</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae54ddbf27117a4cb1b750c6b113a0d0c</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_tailroom</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga14ba72cbede82dddeece5838969d064c</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_headroom</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaff7eae95ec007dd419dc60c03c3db5bd</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_put</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga776bdfbc2cc1de3e2005f8d765739852</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_put_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gabf3d11e3739218fe013956285819f772</anchor>
      <arglist>(struct msgb *msgb, uint8_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_put_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8c951f453a3d6dd6c800fc5d7480534c</anchor>
      <arglist>(struct msgb *msgb, uint16_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_put_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga2650307d02f185d8f6ac11b8de7738c6</anchor>
      <arglist>(struct msgb *msgb, uint32_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_get</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacbaa44ea8bece53cee7b4c6588c52fe8</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint8_t</type>
      <name>msgb_get_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaa5b5674fbbe7b7206565f79dba2ca28f</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>msgb_get_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad07b39cd3d4d0865b4139582eb458e00</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>msgb_get_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga3a53a5bb768bc46ad048794d0bd8e061</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_push</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gafe7118b63e3c23e5dd4f3a5bf8ce18ff</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_push_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga57b61b3a680a9b208f6e032421172d26</anchor>
      <arglist>(struct msgb *msg, uint8_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_push_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga6884d6ab602f8d89256e67f4b6134671</anchor>
      <arglist>(struct msgb *msg, uint16_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_push_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaae975f6c2478a9a588e4826207a45657</anchor>
      <arglist>(struct msgb *msg, uint32_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_push_tl</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga605f6a4d945369e1ccb38f168a8dc2c7</anchor>
      <arglist>(struct msgb *msgb, uint8_t tag)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_pull</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga031d4336b3ebd3a910f4fa178aa17b03</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_pull_to_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaaa6018286eef90118f6f44e531302028</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_pull_to_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga390bcb56ea0623b22c40f81d288812f0</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint8_t</type>
      <name>msgb_pull_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga0d66ac4622d966dfd30ce3ced46f7bff</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>msgb_pull_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga2e2c2eb7ddf48d24cd78f95151537a73</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>msgb_pull_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga68f43d95ab0571e207ccc679c426bbbe</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_reserve</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad73da5b3dce61877ad745d5e25ea44d5</anchor>
      <arglist>(struct msgb *msg, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_trim</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9c64d044b82dc23de865fadc8533249e</anchor>
      <arglist>(struct msgb *msg, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_l3trim</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gadcf2bccabb0370141eebdc32aca77d30</anchor>
      <arglist>(struct msgb *msg, int l3len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>msgb_alloc_headroom_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9afe78b15621cf6ba80ff28ea02ad55a</anchor>
      <arglist>(const void *ctx, uint16_t size, uint16_t headroom, const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>msgb_alloc_headroom</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga456177a38643fcea2cdc2801fb7c7cb6</anchor>
      <arglist>(uint16_t size, uint16_t headroom, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_msgb_eq</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga7c21cb1a25cffb5ad4f0e64af45db040</anchor>
      <arglist>(const char *file, size_t line, const char *func, uint8_t level, const struct msgb *msg, const uint8_t *data, size_t len, bool print)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t *</type>
      <name>msgb_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9bed2fe8aedfa7619eda155a4afbaf9a</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>msgb_talloc_ctx_init</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga66fd1ee6b6667bf707fcef99ee2fb7db</anchor>
      <arglist>(void *root_ctx, unsigned int pool_size)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_set_talloc_ctx</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1d57bb92a849857deb6871446d3230da</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>msgb_printf</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8b7ed585b26c2239b7f7e702a3daf29f</anchor>
      <arglist>(struct msgb *msgb, const char *format,...)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l1</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga721d5c287e8eb56eebb95c438939b81d</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae8022d59918936103cdd9521a0d054c8</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga4d8dfb6c63812f92502e902a93ab32b1</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l4</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5965412cbc6326a2d77ba1d68d756b79</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>msgfile.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>msgfile_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">osmo_config_entry</class>
    <class kind="struct">osmo_config_list</class>
    <member kind="function">
      <type>struct osmo_config_list *</type>
      <name>osmo_config_list_parse</name>
      <anchorfile>msgfile_8h.html</anchorfile>
      <anchor>a40305f9090e1954fcf45028a49457105</anchor>
      <arglist>(void *ctx, const char *filename)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>netdev.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>netdev_8h.html</filename>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_netdev_ifupdown_ind_cb_t</name>
      <anchorfile>netdev_8h.html</anchorfile>
      <anchor>a08ac9b015802c5e54ad10ab577094f68</anchor>
      <arglist>)(struct osmo_netdev *netdev, bool ifupdown)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_netdev_dev_name_chg_cb_t</name>
      <anchorfile>netdev_8h.html</anchorfile>
      <anchor>ad83cc7272a57cb8eaddd1f886c46fc46</anchor>
      <arglist>)(struct osmo_netdev *netdev, const char *new_dev_name)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_netdev_mtu_chg_cb_t</name>
      <anchorfile>netdev_8h.html</anchorfile>
      <anchor>a51661be016d90f7bb3a4134ad4ee3ed6</anchor>
      <arglist>)(struct osmo_netdev *netdev, unsigned int new_mtu)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_netdev *</type>
      <name>osmo_netdev_alloc</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga32e80af9f73ffa365aa4f29d2b2f4694</anchor>
      <arglist>(void *ctx, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_free</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaecbec5417790f43d80d16183f17e42ec</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_register</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaec0126c21739421bb5e662a97a75b7e1</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_unregister</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga8a7a3ebc822eec1042214c3f21e6ff1f</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_netdev_is_registered</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga337c7b72b1ae03b12fc450b40ae35dad</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gad9fc6b9f309dcd3870ee2b5ac6156558</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_priv_data</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga4866aa0d1f95e3d029fc3dc6d4902d97</anchor>
      <arglist>(struct osmo_netdev *netdev, void *priv_data)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_netdev_get_priv_data</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga739ed172d1ab973677f45d1ec1e84fe1</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_ifindex</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7281946d49b12d0a7c4eb4c16f558de7</anchor>
      <arglist>(struct osmo_netdev *netdev, unsigned int ifindex)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_netdev_get_ifindex</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga2b39c6854bc31bd9f249cf6573122b45</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_dev_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7dcaccdf71b69fabc3314f6572e376b5</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga0dd272ca87047c551d30df56353af378</anchor>
      <arglist>(struct osmo_netdev *netdev, const char *netns)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gac398f4cda6c1be1ed1a9f4891e2ef27e</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_mtu</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gad11e6788b3fb89bd8bcd810018aadbbd</anchor>
      <arglist>(struct osmo_netdev *netdev, uint32_t mtu)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_ifupdown_ind_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gababee4a5d0c92a512a2341cda69f39b9</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_ifupdown_ind_cb_t ifupdown_ind_cb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_dev_name_chg_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gac844662701678dd871da96dc0087ae52</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_dev_name_chg_cb_t dev_name_chg_cb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_mtu_chg_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7bd8f74ebaa249c39ebb763ce75d3fba</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_mtu_chg_cb_t mtu_chg_cb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_add_addr</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga825bf951a8c5fc3792c2f8e038b6f623</anchor>
      <arglist>(struct osmo_netdev *netdev, const struct osmo_sockaddr *addr, uint8_t prefixlen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_add_route</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga780d0f6069c596a41383b619e3ce0bb9</anchor>
      <arglist>(struct osmo_netdev *netdev, const struct osmo_sockaddr *dst_addr, uint8_t dst_prefixlen, const struct osmo_sockaddr *gw_addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_ifupdown</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaf9cb007a767215b58bbac2912ad8b7b6</anchor>
      <arglist>(struct osmo_netdev *netdev, bool ifupdown)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>netns.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>netns_8h.html</filename>
    <includes id="signal_8h" name="signal.h" local="no" imported="no">signal.h</includes>
    <class kind="struct">osmo_netns_switch_state</class>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_open_fd</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gaf99b37aab415c93e1b1a083b9d1a7366</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_switch_enter</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga78aa2179b3dc90dfac0d0ac4cd12c9ce</anchor>
      <arglist>(int nsfd, struct osmo_netns_switch_state *state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_switch_exit</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gaaed38f1781aeeaf93d6b399359358ab4</anchor>
      <arglist>(struct osmo_netns_switch_state *state)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>osmo_io.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>osmo__io_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <class kind="struct">osmo_io_ops</class>
    <member kind="define">
      <type>#define</type>
      <name>LOGPIO</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gad79a233373abd11aa1e78ba00a03fba4</anchor>
      <arglist>(iofd, level, fmt, args...)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_io_fd_mode</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga196eee1d3f903df0c1bf84fb7c3179a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_FD_MODE_READ_WRITE</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga196eee1d3f903df0c1bf84fb7c3179a4af6e3729d49ac9f56c26a8af14172fc14</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_FD_MODE_RECVFROM_SENDTO</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga196eee1d3f903df0c1bf84fb7c3179a4a13ea1b4f62c4f0d1aa4c31be31dd26d5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_FD_MODE_RECVMSG_SENDMSG</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga196eee1d3f903df0c1bf84fb7c3179a4aaec6a07945b508eb06fa7b53e4fba4b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_io_op</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaf24a0d74fe0528130dd79e91e8b47217</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_OP_READ</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ggaf24a0d74fe0528130dd79e91e8b47217aa3b4583e49116c2a5edcaadc3015dcdc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_OP_WRITE</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ggaf24a0d74fe0528130dd79e91e8b47217ac3f2db3a8b7590008f949c88f0d4515f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_io_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga5cd6c55e1c52afb526fe99154a8c1037</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_BACKEND_POLL</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga5cd6c55e1c52afb526fe99154a8c1037ae373cd88f847a3dca2f27161c18a3854</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_BACKEND_IO_URING</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga5cd6c55e1c52afb526fe99154a8c1037af670c1a37d43d6a4c954371727a1ec30</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>enum osmo_io_backend</type>
      <name>osmo_io_get_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga9a5ee69f272cd017639951f2ed9dd350</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_io_backend_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga48f0337026e1c0df61db86255a1268a1</anchor>
      <arglist>(enum osmo_io_backend val)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_iofd_mode_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga3d1d70e2518dce3fcb19ceadac1a6072</anchor>
      <arglist>(enum osmo_io_fd_mode val)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_init</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac2aa95b43d279379692c700a982c1b36</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_io_fd *</type>
      <name>osmo_iofd_setup</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa51acb50932f9ca44bfe0fe8a7005c93</anchor>
      <arglist>(const void *ctx, int fd, const char *name, enum osmo_io_fd_mode mode, const struct osmo_io_ops *ioops, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_cmsg_size</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaf275c59b5ddcb21ae83652ecb5756f31</anchor>
      <arglist>(struct osmo_io_fd *iofd, size_t cmsg_size)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_io_buffers</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga28891e57c72de4603b6460d0c84b5978</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum osmo_io_op op, uint8_t buffers)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_sqes</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga14a5a4c9dd90939a2beab07a843a630f</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum osmo_io_op op, uint8_t sqes)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_register</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa53e1057f56ac19ab23f35eecf4ed95a</anchor>
      <arglist>(struct osmo_io_fd *iofd, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_unregister</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga3ea9d5e4466d3cf56d922e25106fe8ff</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_txqueue_len</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac2a28e90c8d6d9ed17a6a69593443eb5</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_txqueue_clear</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga71bccce92a62bd5e5e50b840a0596890</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_close</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gae87caba238946a9c9b29f248bb588f9a</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_free</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8a10e120fd35fcf7f0fd8b43f5b8d5aa</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_notify_connected</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga51608c4401dcbc99a7ad91a2746f8e90</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_write_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0c3ca8f15e1c3382902c226e001e98ad</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_sendto_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaefb2721bf4d1f6fb443214d989a90e8c</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int sendto_flags, const struct osmo_sockaddr *dest)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_sendmsg_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gabab40e7a5478bf4195dd8b79752bc1b2</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int sendmsg_flags, const struct msghdr *msgh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_alloc_info</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gadc4115972306e4f5614432119fefc386</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int size, unsigned int headroom)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_txqueue_max_length</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga62d298658dac2770d55e766fbcfc4fcb</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int max_length)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_get_txqueue_max_length</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga930572437897f5a8b1beaa3e9fa9af8d</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_iofd_get_data</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaddf0cc4e28ce123e52d0b62cc947d7ac</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_data</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga090693c9f45a01e5c39b7c4fbebb9079</anchor>
      <arglist>(struct osmo_io_fd *iofd, void *data)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_get_priv_nr</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gade3d061edf87b81213cbaf62eaa9da2e</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_priv_nr</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga52cab17b19fa5dd62f80b6a3bd020d7b</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int priv_nr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_get_fd</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8747c5e4274bd97c7faf968a5a6b1fd1</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_iofd_get_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gacaf7cf012bdf07bc8325deb929485a9d</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga7f7bbf44f3a5308f510ccaab21b89cfe</anchor>
      <arglist>(struct osmo_io_fd *iofd, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_name_f</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gadd605353d540e3107aa9075cdc24c23f</anchor>
      <arglist>(struct osmo_io_fd *iofd, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_ioops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga365266d41cdc7dc76fd0073c77084580</anchor>
      <arglist>(struct osmo_io_fd *iofd, const struct osmo_io_ops *ioops)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_get_ioops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga2acd36a67ea289bc3b043d9125c6e2c4</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct osmo_io_ops *ioops)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_io_backend_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8f5cb2143224530f5cf0c0e84e4ade1b</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_iofd_mode_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac9c7fc1e9c6e8219afd43e9e19a96b61</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>panic.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>panic_8h.html</filename>
    <member kind="typedef">
      <type>void(*</type>
      <name>osmo_panic_handler_t</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga23bc29d21400af02d00e4741d96b8e73</anchor>
      <arglist>)(const char *fmt, va_list args)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_panic</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae8ebb6efd9b30d8d8940f6d71dc32833</anchor>
      <arglist>(const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_set_panic_handler</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga68ffd899763d4c8d24a8df1708b3fe9d</anchor>
      <arglist>(osmo_panic_handler_t h)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>plugin.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>plugin_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_plugin_load_all</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga298853e248d7557902d4c0b6eb400d01</anchor>
      <arglist>(const char *directory)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>prbs.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>prbs_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <class kind="struct">osmo_prbs</class>
    <class kind="struct">osmo_prbs_state</class>
    <member kind="function">
      <type>void</type>
      <name>osmo_prbs_state_init</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a20d9d984ba6af30a2550950cb3134c63</anchor>
      <arglist>(struct osmo_prbs_state *st, const struct osmo_prbs *prbs)</arglist>
    </member>
    <member kind="function">
      <type>ubit_t</type>
      <name>osmo_prbs_get_ubit</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a525d10aa4287f6da7f1fe62f0482f7e2</anchor>
      <arglist>(struct osmo_prbs_state *state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_prbs_get_ubits</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a6f0f56ecec20b7c1dde8e4eb2886572d</anchor>
      <arglist>(ubit_t *out, unsigned int out_len, struct osmo_prbs_state *state)</arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs7</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a0a484b320cfb1d0000ac78d4e7467565</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs9</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a592a20b5fc9dfe64a63059737234ca3f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs11</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a7ad14c2c22b4b92a3e176f9d1bd51701</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs15</name>
      <anchorfile>prbs_8h.html</anchorfile>
      <anchor>a3c3d26cc5c9bba987b72d0d05a06a8ba</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>prim.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>prim_8h.html</filename>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <class kind="struct">osmo_prim_hdr</class>
    <class kind="struct">osmo_prim_event_map</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_PRIM</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga173c203440160e63e5c588870638607a</anchor>
      <arglist>(prim, op)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_PRIM_HDR</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga43873bb5609b3d8c72a740c095264b3b</anchor>
      <arglist>(oph)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_GSM_SHIFT</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gaa9cc671e11971c5cbd2e8fbe9c5de332</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_GSM_BASE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gafede4906436eeaac53464216f112a2d9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_TETRA_BASE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga66ac978ed015c4111d846c5e1dee1449</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_SS7_BASE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga7f7c1f3030da0d2aa57f4c69a99d06e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_NO_EVENT</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gaada260e79492bf89c208db9184174459</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_prim_cb</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gab56d32c84797be881ccafdebe4b78b2a</anchor>
      <arglist>)(struct osmo_prim_hdr *oph, void *ctx)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_prim_operation</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga5bd3196233677c8e9ab66b6fb97060d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_REQUEST</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3aef3a9ebe139f54ca2c1dae8b65c6880e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_RESPONSE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3af62503bb7df5fde38f9359b591028dc1</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_INDICATION</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3a6987bf8560df352ada9979b4457f9f0d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_CONFIRM</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3aee86a39134232ad0417a13ef1f8e53bf</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_prim_operation_name</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga771deac5835b0ce81dc8d7390f8e00f2</anchor>
      <arglist>(enum osmo_prim_operation val)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_prim_init</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gaf826713c118d129aff1a700a742552c4</anchor>
      <arglist>(struct osmo_prim_hdr *oph, unsigned int sap, unsigned int primitive, enum osmo_prim_operation operation, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_event_for_prim</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga65cffc8b84a2c3d2f200560096810695</anchor>
      <arglist>(const struct osmo_prim_hdr *oph, const struct osmo_prim_event_map *maps)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_prim_op_names</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gae79f3e17450603fb5f3c5444fb845f0d</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>process.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>process_8h.html</filename>
    <includes id="application_8h" name="application.h" local="no" imported="no">osmocom/core/application.h</includes>
  </compound>
  <compound kind="file">
    <name>rate_ctr.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>rate__ctr_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">rate_ctr_per_intv</class>
    <class kind="struct">rate_ctr</class>
    <class kind="struct">rate_ctr_desc</class>
    <class kind="struct">rate_ctr_group_desc</class>
    <class kind="struct">rate_ctr_group</class>
    <member kind="define">
      <type>#define</type>
      <name>RATE_CTR_INTV_NUM</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga85def00abef0c8c8bbdf23d735b6cee5</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>rate_ctr_handler_t</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8e56c2c4dfd115cc0dce5ece64358134</anchor>
      <arglist>)(struct rate_ctr_group *, struct rate_ctr *, const struct rate_ctr_desc *, void *)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>rate_ctr_group_handler_t</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga6866d0e48674968700a4e0b180d920ec</anchor>
      <arglist>)(struct rate_ctr_group *, void *)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>rate_ctr_intv</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga206bdcbeb51642012c2e45d8f058a9f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_SEC</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0a6b6b79abab6c1a040df680ab5449f9df</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_MIN</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0aad41f28c9d50eb22834cf166befb415c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_HOUR</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0ad4ea3a8a9bc17930d092e508cb72cdf2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_DAY</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0a1afdc7f2127e33125916f7de9c9eae32</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr_group *</type>
      <name>rate_ctr_group_alloc</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga108907e64481db1455cb1fca5374b659</anchor>
      <arglist>(void *ctx, const struct rate_ctr_group_desc *desc, unsigned int idx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_group_upd_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga753c11230f62e060d7858817f7b002e0</anchor>
      <arglist>(struct rate_ctr_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_set_name</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga5d551206dbf14b5dd7c465e3d6e6ee8d</anchor>
      <arglist>(struct rate_ctr_group *grp, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr *</type>
      <name>rate_ctr_group_get_ctr</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga317acaee831407fbff64233258a48734</anchor>
      <arglist>(struct rate_ctr_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_free</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga2b28875fc006413054b17cb80e540edd</anchor>
      <arglist>(struct rate_ctr_group *grp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_add</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gada3668404ea1bd57e2aaab8287bc16b6</anchor>
      <arglist>(struct rate_ctr *ctr, int inc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_add2</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga053d7640f3b442c96e493c113190629b</anchor>
      <arglist>(struct rate_ctr_group *ctrg, unsigned int idx, int inc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_inc</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8f2e881dafe07d4fbdec1027394991eb</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_inc2</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga1bf97abfab860f29e4b0019c3f5dfddb</anchor>
      <arglist>(struct rate_ctr_group *ctrg, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>int64_t</type>
      <name>rate_ctr_difference</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gaabc955b67c53b2d239bd6d6193cbf6c8</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_init</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga9bfe8ec87ccaabd9f1fdddef5f36cbfa</anchor>
      <arglist>(void *tall_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr_group *</type>
      <name>rate_ctr_get_group_by_name_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8ec85b6a07ce4c18fd9b8b548a4badfe</anchor>
      <arglist>(const char *name, const unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>const struct rate_ctr *</type>
      <name>rate_ctr_get_by_name</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga13a0c06042c667f41dc56ee02325c077</anchor>
      <arglist>(const struct rate_ctr_group *ctrg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_for_each_counter</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gacded8db7ae1f6b7bd5b837680df23df7</anchor>
      <arglist>(struct rate_ctr_group *ctrg, rate_ctr_handler_t handle_counter, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_for_each_group</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga7481b6560512295ed28806e2fe916c09</anchor>
      <arglist>(rate_ctr_group_handler_t handle_group, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_reset</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga099666d2e04df4d35c73b373b4a3cb5f</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_reset</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga55836246eef523c255256cb530a99d64</anchor>
      <arglist>(struct rate_ctr_group *ctrg)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>select.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>select_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="signal_8h" name="signal.h" local="no" imported="no">signal.h</includes>
    <class kind="struct">osmo_fd</class>
    <class kind="struct">osmo_signalfd</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_READ</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga0b213d11f729967d08a03f84a29e27b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_WRITE</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga35f0e6aebab8ac046ab1f6d40a75e9f1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_EXCEPT</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga2f7bdc2b5dc69c376d44170645a69f0a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_MASK</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gae2f6852f715acabaff698001e7ca9025</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>BSC_FD_READ</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga984f70f9eecce28d279db885321c1fde</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>BSC_FD_WRITE</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga9465a2b57e47f183b317a38e85db7370</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>BSC_FD_EXCEPT</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga3b3006cd41b97228177c2ebaed68ab1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>void</type>
      <name>osmo_signalfd_cb</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga03d8416886989017d0ea36ba893f5aeb</anchor>
      <arglist>(struct osmo_signalfd *osfd, const struct signalfd_siginfo *fdsi)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_setup</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga2f14f77e5e71c5bd3461d5936f8c8725</anchor>
      <arglist>(struct osmo_fd *ofd, int fd, unsigned int when, int(*cb)(struct osmo_fd *fd, unsigned int what), void *data, unsigned int priv_nr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_update_when</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga7334ab2c60124d85137cfd3e34fd6214</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int when_mask, unsigned int when)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_read_enable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gaa292f19cc2852a2e6245f20fba5efc44</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_read_disable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gad480c371be33f8eb8945b5da28fc3de2</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_write_enable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gac60e507582c46d44889e099f218433ee</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_write_disable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gada41360239bba1171cd41eb10a451a9e</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_fd_is_registered</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga7fff224f686a25799a00a3bb94d5b5f5</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fd_register</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gac32214612d27208dad91c7ed9ea56314</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_unregister</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gaf96b5808375c57fa2065177dcb8ace30</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_close</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga61c647f34ed36905c87803a337fa2dfd</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_select_main</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gabc1e2b227ca4c88df091ad2ba22c4231</anchor>
      <arglist>(int polling)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_select_main_ctx</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga5a4cd886cd6be70c0a85ed9114ba6d5b</anchor>
      <arglist>(int polling)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_select_init</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga267a7be1b116a008587c13a522b060a4</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fd *</type>
      <name>osmo_fd_get_by_fd</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gac3d9884ffdcc49590ff9dc09b29a1052</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fd_fill_fds</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga4bfe6aaedd6b3eedbe1a5910d21f14ea</anchor>
      <arglist>(void *readset, void *writeset, void *exceptset)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fd_disp_fds</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga3a26f48c28fd1173a7362f805ec9729a</anchor>
      <arglist>(void *readset, void *writeset, void *exceptset)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timerfd_disable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gafb018e4ae4f7a11a99f167c6c400bf3a</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timerfd_schedule</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gaae36f523e511d19574907b418f3d8e4f</anchor>
      <arglist>(struct osmo_fd *ofd, const struct timespec *first, const struct timespec *interval)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timerfd_setup</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga4f0c2df649f7e05b14a920ed36316cd8</anchor>
      <arglist>(struct osmo_fd *ofd, int(*cb)(struct osmo_fd *, unsigned int), void *data)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_signalfd *</type>
      <name>osmo_signalfd_setup</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga64bd5cc5507e872a3a7959bf5a05c190</anchor>
      <arglist>(void *ctx, sigset_t set, osmo_signalfd_cb *cb, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_select_shutdown_request</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga29999031d0d7eb5bb56e3b5a002cab82</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_select_shutdown_requested</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga60c59a1a2e1269be4811e34d026ccd31</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_select_shutdown_done</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gae7a26a2e65f34eaad166ea74d34e005d</anchor>
      <arglist>(void)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sercomm.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>sercomm_8h.html</filename>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <class kind="struct">osmo_sercomm_inst</class>
    <member kind="typedef">
      <type>void(*</type>
      <name>dlci_cb_t</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga81cd2fc05eee74b91a246d2a0628c224</anchor>
      <arglist>)(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>sercomm_dlci</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga62ff1a9e948ed30514cebd9efccab0e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_HIGHEST</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6a68f6d4acc5da7baa67418fdbc089ff74</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_DEBUG</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6ae0c072c1915aee9c412de3ddf665389a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_L1A_L23</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6a8bc355b526b80f8cd2f9df8f63ccb3e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_LOADER</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6afdf26330965d85d5ded38e30f58e2342</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_CONSOLE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6ad8a377d4e7af4bb5362aae85192e9082</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_ECHO</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6abd4f3db5ac3962150791d6b26681d758</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_SC_DLCI_MAX</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6afd8db6ec8c0af822dd9758f317827ad5</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sercomm_init</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gab2d8eec4732f508236647b94a525f93b</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_initialized</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga5ef6c458cc669168c62cd82a277f3dd6</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sercomm_sendmsg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gaa5c1979d9a54e7be35d58f5c696a6900</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_sercomm_tx_queue_depth</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga17b7f2be907d071088e806b513c67aa2</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_register_rx_cb</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga08ec337e1f51fafb07d18d7b6c717a78</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, dlci_cb_t cb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_change_speed</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga8f6f058187c96d9fded862e2f6d8841e</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint32_t bdrt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_drv_pull</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga0b371b3a27149b137f7589b194ee26c6</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t *ch)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_drv_rx_char</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga10cbc58f23aafa1381074457c70c2b34</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t ch)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_lock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gab9383d9e35e3255b4066b9f5ee4cbefd</anchor>
      <arglist>(unsigned long *flags)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_unlock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga614e4d8b5c68c96a87424ceccf7973cc</anchor>
      <arglist>(unsigned long *flags)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_start_tx</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga3d78d1d6fb0f92c23d93555085ab1353</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>sercomm_drv_baudrate_chg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gabb67e6d20a7b7002ce8093cc6ab99102</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint32_t bdrt)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>osmo_sercomm_alloc_msgb</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga4350807326534376d38dec25e9551ccb</anchor>
      <arglist>(unsigned int len)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>serial.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>serial_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_init</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga1f1af4f9541cea98915c807938d576af</anchor>
      <arglist>(const char *dev, speed_t baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_set_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gac12e9df0274d063a3a188f16c9f86378</anchor>
      <arglist>(int fd, speed_t baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_set_custom_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga53bf675db7d6c886d683bcfa3621193c</anchor>
      <arglist>(int fd, int baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_clear_custom_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gaf674bb14346e7bbd6f0555464fb66a53</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_speed_t</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga79c9ea27d7852c2652122e5bbdb47511</anchor>
      <arglist>(unsigned int baudrate, speed_t *speed)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>signal.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>signal_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_SS_APPS</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gabf1fd02256768cfed6356d8434e3163a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_SS_RESERVED</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gaea2126eb1859066374a148c5929fc901</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_T_APPS</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga24a50e4e7f446e4b595ce13b66418eeb</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_T_RESERVED</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga2e48d094a85446edcb2a9a8b2d7adb34</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int</type>
      <name>osmo_signal_cbfn</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gae1e33b4b31b9aa6d224de68053dcb1ce</anchor>
      <arglist>(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data)</arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_GLOBAL</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167ba1c16e247915ba903f0b15dd21f33f924</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_INPUT</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167ba0f74e71436faadd50e466563f7f5fabd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_NS</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167baea1b3aaafcf5689c71b9db0e2db8ab7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_VTY</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167ba3b46c605181dbc6523c86e9e66b76004</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>S_L_GLOBAL_SHUTDOWN</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ggaabfcbcb5ac86a1edac4035264bc7d2b8a4332cdc80e697a91f1f95b89b59216be</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_signal_talloc_ctx_init</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gacbbc59427aa2fd838becc61d3443ca44</anchor>
      <arglist>(void *root_ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_signal_register_handler</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga34e5e27e85ffdaa63744cf9e97468807</anchor>
      <arglist>(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_signal_unregister_handler</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga62da9d737e40883ac0d15b7b3bc049fb</anchor>
      <arglist>(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_signal_dispatch</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga8eb0fdf74d9ae54383b10cb88792a008</anchor>
      <arglist>(unsigned int subsys, unsigned int signal, void *signal_data)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sockaddr_str.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>sockaddr__str_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <class kind="struct">osmo_sockaddr_str</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCKADDR_STR_FMT</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gacbcacc5429078f8b244928a92a8041fe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCKADDR_STR_FMT_ARGS_NOT_NULL</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga557fc04af8e36cf0f69680da091d1001</anchor>
      <arglist>(R)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCKADDR_STR_FMT_ARGS</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga44e102d6ce265f3acaa7e540c7376a1d</anchor>
      <arglist>(R)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ip_str_type</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga4177f6f9287d8963ea58a554d99d44d6</anchor>
      <arglist>(const char *ip)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_sockaddr_str_is_set</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga5b1c364309537a77bd3a85f430772a44</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_sockaddr_str_is_nonzero</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga7a8ba06f6ab31056048af621348dfd30</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_cmp</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga0942ff1dcde89d8ce4e14a6cf7baf277</anchor>
      <arglist>(const struct osmo_sockaddr_str *a, const struct osmo_sockaddr_str *b)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_str</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga082e00a6b6cd0864dc783b1e181eb937</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const char *ip, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_str2</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaf7987340f6f4e12ecf9afa7436560c10</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const char *ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_in_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga9443ca32f5bb8f162ea122f216f0e2be</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct in_addr *addr, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_in6_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga6cd6db8f1f0e321be47c227799c7d741</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct in6_addr *addr, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_32</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaf6a4c9a32488786a7a97195806f8ca2e</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_32h</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaf81cade4b86a1257e8e0c552ce79d5e4</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_sockaddr_in</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gab1081a1dac76fb2d1827c7ff733aa4c0</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_in *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_sockaddr_in6</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gae78d6274467308bbb88d840d0fc6f1bf</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_in6 *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_sockaddr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gadafc2ead9cb89466b621894b3ebce04f</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_storage *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_osa</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga3c1bc87b46c3f1fe09958ab24601e4a0</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct osmo_sockaddr *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_in_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaabb64cc261c5fe48f14ff8a2ed77de73</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct in_addr *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_in6_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga55e92e54fc566ddabcbd7cca3a774f3d</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct in6_addr *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_32</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga0a1cc4911408f68de6b59648163cd532</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_32h</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga616a1d04b70ee569215046fde6397d74</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_sockaddr_in</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga707fee0f0eddf74524953170b000c633</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_in *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_sockaddr_in6</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga07ada92e0f6bd676ee1c1abb958f16df</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_in6 *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_sockaddr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga33da0e68877b611c33021f33c3d85318</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_storage *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_osa</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gab382ac8fe286de5cce9c9f0398e75006</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct osmo_sockaddr *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_32n</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gabc4bf3f0af002b846d9f0b0e700bad8b</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port) OSMO_DEPRECATED(&quot;osmo_sockaddr_str_from_32n() actually uses *host* byte order. Use osmo_sockaddr_str_from_32h() instead&quot;)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_32n</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaac1fbfabad8054638264db0b3afe72c4</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) OSMO_DEPRECATED(&quot;osmo_sockaddr_str_to_32n() actually uses *host* byte order. Use osmo_sockaddr_str_to_32h() instead&quot;)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>socket.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>socket_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <includes id="socket__compat_8h" name="socket_compat.h" local="no" imported="no">osmocom/core/socket_compat.h</includes>
    <class kind="struct">osmo_sockaddr</class>
    <class kind="struct">osmo_sock_init2_multiaddr_pars</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_MAX_ADDRS</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae4c08dc00d7838698bc30966691f5760</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_NAME_MAXLEN</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga22a44e09d135767610646c73e7abe57f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_MULTIADDR_PEER_STR_MAXLEN</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaf4d29d5d47130a624c2f0cb4e45535da</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_MULTIADDR_NAME_MAXLEN</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gac2608bdadb53f7c9c19ae0ed6f9166db</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_CONNECT</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaa686c67100001f1b7be0e8f00a770c37</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_BIND</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga642c796a06636fe18f1daea1bbf1cc13</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_NONBLOCK</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga27b043d6ad4ceb700a863e17db7fc670</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_NO_MCAST_LOOP</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaecc9539e779824d52eaa8a3c37e941c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_NO_MCAST_ALL</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga1af36cd850690c8f592caa8f2dc3e612</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_UDP_REUSEADDR</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gacf7b1899fb6ccaeb8703ef4eded34684</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_DSCP</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6f3cbc5dea1ebecd6a4312ea65666627</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GET_OSMO_SOCK_F_DSCP</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga4970b1b90d27644ff2ab37a33d1a09c5</anchor>
      <arglist>(f)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_PRIO</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3d96505ab56ed6051eca99ab76f16ca3</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GET_OSMO_SOCK_F_PRIO</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3a268537621c5097a00a50819fc67d74</anchor>
      <arglist>(f)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_is_local</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaada6ed9f0b165ba0d5b87b296019a3c3</anchor>
      <arglist>(struct sockaddr *addr, unsigned int addrlen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_is_any</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga4cf2d01f4571c6c41e63f739c2801a3d</anchor>
      <arglist>(const struct osmo_sockaddr *addr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static socklen_t</type>
      <name>osmo_sockaddr_size</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga2593ce381512d4616186386b4b46894e</anchor>
      <arglist>(const struct osmo_sockaddr *addr)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_sockaddr_to_str_and_uint</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga85e86cf67b2c967170b6a9068eb1a98d</anchor>
      <arglist>(char *addr, unsigned int addr_len, uint16_t *port, const struct sockaddr *sa)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_sockaddr_in_to_str_and_uint</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga0695d8b527844e0d635536a66f0276a4</anchor>
      <arglist>(char *addr, unsigned int addr_len, uint16_t *port, const struct sockaddr_in *sin)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_sockaddr_ntop</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga28fe7ce47715dbea88271b0ed6fa2404</anchor>
      <arglist>(const struct sockaddr *sa, char *dst)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_sockaddr_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3a3a807a0cfac8ba92e4fab518a1dce8</anchor>
      <arglist>(const struct sockaddr *sa)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sockaddr_set_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga345c1c06891aa2c9d02e352c5bc78eb8</anchor>
      <arglist>(struct sockaddr *sa, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_local_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga485530c80633f84427da59f27be8f0f2</anchor>
      <arglist>(struct osmo_sockaddr *local_ip, const struct osmo_sockaddr *remote_ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_cmp</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga00b04e05323b733fa52937ccdb5e7afd</anchor>
      <arglist>(const struct osmo_sockaddr *a, const struct osmo_sockaddr *b)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_to_octets</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6e09b835c0d7fd46e07c3b51da3a950b</anchor>
      <arglist>(uint8_t *dst, size_t dst_maxlen, const struct osmo_sockaddr *os)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_from_octets</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga86058fac21a55fd2f7710defe338f3aa</anchor>
      <arglist>(struct osmo_sockaddr *os, const void *src, size_t src_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_from_str_and_uint</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5ce65b23c53fa2e03b5b37d170fea066</anchor>
      <arglist>(struct osmo_sockaddr *osa_out, const char *ipstr, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_netmask_to_prefixlen</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga72afd420dd1cbe5f53661e1e2421a8e0</anchor>
      <arglist>(const struct osmo_sockaddr *addr)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_sockaddr_to_str</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga793ce40b40fad45721a9b81476c356d3</anchor>
      <arglist>(const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sockaddr_to_str_buf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga352118db1d772f5af9eb08743d12fdcd</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_to_str_buf2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga85363264fab8d26e417f6535f16f8382</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sockaddr_to_str_c</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3859ef3f3d2bd5c3c6623b7838016ff9</anchor>
      <arglist>(void *ctx, const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6541a3a4c15bc6c8fbcbe5fcbe0de640</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char *host, uint16_t port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga95ffbbf949feb5939de9fa70f70be9ee</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char *local_host, uint16_t local_port, const char *remote_host, uint16_t remote_port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2_multiaddr</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gab0e1e4c91993c8d20b567c31e99cc64b</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char **local_hosts, size_t local_hosts_cnt, uint16_t local_port, const char **remote_hosts, size_t remote_hosts_cnt, uint16_t remote_port, unsigned int flags) OSMO_DEPRECATED_OUTSIDE(&quot;Use osmo_sock_init2_multiaddr2() instead&quot;)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2_multiaddr2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaac9e12947211a1c1037c2ba914a4e088</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char **local_hosts, size_t local_hosts_cnt, uint16_t local_port, const char **remote_hosts, size_t remote_hosts_cnt, uint16_t remote_port, unsigned int flags, struct osmo_sock_init2_multiaddr_pars *pars)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_osa</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga0e00f552ace126ec3a284faeb34b3813</anchor>
      <arglist>(uint16_t type, uint8_t proto, const struct osmo_sockaddr *local, const struct osmo_sockaddr *remote, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga66109962305745831fcd461483179534</anchor>
      <arglist>(struct osmo_fd *ofd, int family, int type, int proto, const char *host, uint16_t port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga67a4d3cca7937c4a8e40e98c01fcfb98</anchor>
      <arglist>(struct osmo_fd *ofd, int family, int type, int proto, const char *local_host, uint16_t local_port, const char *remote_host, uint16_t remote_port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_osa_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gacf46828ab5f054147251ebe5715f1add</anchor>
      <arglist>(struct osmo_fd *ofd, int type, int proto, const struct osmo_sockaddr *local, const struct osmo_sockaddr *remote, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_sa</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gade7aa852d99c199675e68baac1fee73c</anchor>
      <arglist>(struct sockaddr *ss, uint16_t type, uint8_t proto, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_unix_init</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gad444f45f056e27aab3687c19b2e52753</anchor>
      <arglist>(uint16_t type, uint8_t proto, const char *socket_path, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_unix_init_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga97e142eb8d6437d16f916c3d03f6dd3c</anchor>
      <arglist>(struct osmo_fd *ofd, uint16_t type, uint8_t proto, const char *socket_path, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sock_get_name</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga42ee983e4f1feae807a87768de0b2af3</anchor>
      <arglist>(const void *ctx, int fd)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_sock_get_name2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga7996f9b2938be6386d78af309906637d</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sock_get_name2_c</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3f0ec92748ad707c87b7758d549ab699</anchor>
      <arglist>(const void *ctx, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_name_buf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga4a407d661515fc2028e036e39cc37d64</anchor>
      <arglist>(char *str, size_t str_len, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_ip_and_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga50a6e81b2f328d35ece2ab8005cefc6a</anchor>
      <arglist>(int fd, char *ip, size_t ip_len, char *port, size_t port_len, bool local)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_local_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga2fd9c4f771cb0e669c6a452e4dc52256</anchor>
      <arglist>(int fd, char *host, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_local_ip_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5d1cbb310e9dbe2856f0d324a7250f56</anchor>
      <arglist>(int fd, char *port, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_remote_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gac331a5587179fad782042b47e73cdcc8</anchor>
      <arglist>(int fd, char *host, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_remote_ip_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga79ef34f1de3375e3d4d3e890e9663e72</anchor>
      <arglist>(int fd, char *port, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_get_ip_and_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga8a6ba657e144a51505b3b702f2ef2514</anchor>
      <arglist>(int fd, int ip_proto, char *ip, size_t *ip_cnt, size_t ip_len, char *port, size_t port_len, bool local)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_multiaddr_ip_and_port_snprintf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga7236135a9d2ec8bccd8682ae7e9881fd</anchor>
      <arglist>(char *str, size_t str_len, const char *ip, size_t ip_cnt, size_t ip_len, const char *portbuf)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_get_name_buf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaecc22fd01a9c7d25977b3ead3cdf8be2</anchor>
      <arglist>(char *str, size_t str_len, int fd, int sk_proto)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_add_local_addr</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga231f23f7e66925c7b749f1b4a9614034</anchor>
      <arglist>(int sfd, const char **addrs, size_t addrs_cnt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_del_local_addr</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga519eca10e77a28ce141510f9f2816119</anchor>
      <arglist>(int sfd, const char **addrs, size_t addrs_cnt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_loop_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5084bc78d5b1e27271586cb1285f147b</anchor>
      <arglist>(int fd, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_ttl_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga9a131f0fa9fb28ac1352081cd999b964</anchor>
      <arglist>(int fd, uint8_t ttl)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_all_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga7e0ad7f569f9725b1bc677826a7d3cd0</anchor>
      <arglist>(int fd, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_iface_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gac65f07a57203419611d8e925dd1e45b5</anchor>
      <arglist>(int fd, const char *ifname)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_subscribe</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae601bc27d51581ce69e4ea5ab35e8c8f</anchor>
      <arglist>(int fd, const char *grp_addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_local_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae2060fed8214db649330bdca51b9c53c</anchor>
      <arglist>(char *local_ip, const char *remote_ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_set_dscp</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga9ccc0f95ae62e250a454e544c2595e47</anchor>
      <arglist>(int fd, uint8_t dscp)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_set_priority</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5066129f926cd67d45d57225931741a1</anchor>
      <arglist>(int fd, int prio)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_nonblock</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae15494202f58f65f785ecd01cbe58c66</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_set_nonblock</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae5d5dec8c60cbf646b2f23dd74645bd9</anchor>
      <arglist>(int fd, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_sctp_get_peer_addr_info</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6ac818fa65b39d9a091ccb7ab0258cd2</anchor>
      <arglist>(int fd, struct sctp_paddrinfo *pinfo, size_t *pinfo_cnt)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>socket_compat.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>socket__compat_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>__LIBOSMOCORE_HAVE_SYS_SOCKET_H</name>
      <anchorfile>socket__compat_8h.html</anchorfile>
      <anchor>a72e14ec90f0cdede984242529ce51abe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>__LIBOSMOCORE_HAVE_NETINET_IN_H</name>
      <anchorfile>socket__compat_8h.html</anchorfile>
      <anchor>a860dff680c21cfb76d70fe413ab587c9</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>soft_uart.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>soft__uart_8h.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <class kind="struct">osmo_soft_uart_cfg</class>
    <member kind="enumeration">
      <type></type>
      <name>osmo_soft_uart_parity_mode</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_PARITY_NONE</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732accec1ddaf3b0540d78334e5daadff639</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_PARITY_EVEN</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732a924cf56dbbb5c6afb2b3a09d1292e8c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_PARITY_ODD</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732aabc51b510f55c2eb3504f61dd71ee08d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_PARITY_MARK</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732ab02592499a92b6c5eeb51257193f4d66</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_PARITY_SPACE</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732a576da0ada6ef85efebe7224bfe3fc32e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_OSMO_SUART_PARITY_NUM</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>aa43dd37ffde2fd00defd123aae6c1732a0dbafc8f716fd9e51a56a3756b0817d7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_soft_uart_flags</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>ad108b55bb45ac4c9b7c7dada9e8f3ca0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_F_FRAMING_ERROR</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>ad108b55bb45ac4c9b7c7dada9e8f3ca0a9df6e60e183d3875329831e2e094c716</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_F_PARITY_ERROR</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>ad108b55bb45ac4c9b7c7dada9e8f3ca0a549351d161822142a41406933a39a9b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_F_BREAK</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>ad108b55bb45ac4c9b7c7dada9e8f3ca0a18b99360094ca8d8ff81bcc1913224f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_soft_uart_status</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_STATUS_F_DTR</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19aa3938bac5142e9b6a043e8c739c5dc02c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_STATUS_F_DCD</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19aa325882ae703412c99b185f1e0749476f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_STATUS_F_DSR</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19aae99abac90f35e880992475d9a5dfd9ae</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_STATUS_F_RI</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19aaec43e7db9acce866ebcde1c5ac9dc9f2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_STATUS_F_RTS_RTR</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19aa58064551f601c3183fb59ae32961f7d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_STATUS_F_CTS</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a50cde2815fad2bac3015a6e6055fb19aaf7df326433c7daee2a91b41340316726</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_soft_uart_flow_ctrl_mode</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a807a5c545de0cc1adfbb3352add2f575</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_FLOW_CTRL_NONE</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a807a5c545de0cc1adfbb3352add2f575a5fbe4ef7f614c66a473929c91b29b5e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_FLOW_CTRL_DTR_DSR</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a807a5c545de0cc1adfbb3352add2f575adb63ba291b48eae809080a3a021de2cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_SUART_FLOW_CTRL_RTS_CTS</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a807a5c545de0cc1adfbb3352add2f575a01ac9bbbf1532f747cc54a05169d59ce</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>struct osmo_soft_uart *</type>
      <name>osmo_soft_uart_alloc</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a063d09085ca7ea01ee93e08d6199c751</anchor>
      <arglist>(void *ctx, const char *name, const struct osmo_soft_uart_cfg *cfg)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_free</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a43a70e38b6059372f81ab8f8f7f14e9d</anchor>
      <arglist>(struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_configure</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>afc55d9d32b42aa1e3ad0e450d91d875a</anchor>
      <arglist>(struct osmo_soft_uart *suart, const struct osmo_soft_uart_cfg *cfg)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_soft_uart_get_name</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a35b6e0b25f80ed22fab1758536edc4cc</anchor>
      <arglist>(const struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_set_name</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a3351d78d1f56c05dd919c2c3a748130a</anchor>
      <arglist>(struct osmo_soft_uart *suart, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_set_rx</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a390451aed05c1adc0450fe091377f651</anchor>
      <arglist>(struct osmo_soft_uart *suart, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_set_tx</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a21fbc23b6423f407db7b710a18f08caf</anchor>
      <arglist>(struct osmo_soft_uart *suart, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_rx_ubits</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>ad870a6210297fcf8a5a5b528d3b6269e</anchor>
      <arglist>(struct osmo_soft_uart *suart, const ubit_t *ubits, size_t n_ubits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_tx_ubits</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a4c1a3c81790eec8747c4d33e091fb1b3</anchor>
      <arglist>(struct osmo_soft_uart *suart, ubit_t *ubits, size_t n_ubits)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_soft_uart_get_status</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a92c611f063e605c836017d77b6a64789</anchor>
      <arglist>(const struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_set_status</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>ae5c16cdf602285cc395008816ecf6666</anchor>
      <arglist>(struct osmo_soft_uart *suart, unsigned int status)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_set_status_line</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a2dbac5fede9255613820199209c7b580</anchor>
      <arglist>(struct osmo_soft_uart *suart, enum osmo_soft_uart_status line, bool active)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_flush_rx</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a39fc01350377643743e89b630fa3ce1a</anchor>
      <arglist>(struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_soft_uart_cfg</type>
      <name>osmo_soft_uart_default_cfg</name>
      <anchorfile>soft__uart_8h.html</anchorfile>
      <anchor>a4f0f43abec08e6901270f24fb213c024</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>stat_item.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>stat__item_8h.html</filename>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">osmo_stat_item_desc</class>
    <class kind="struct">osmo_stat_item_group_desc</class>
    <class kind="struct">osmo_stat_item_group</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STAT_ITEM_NOVALUE_ID</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gaf6f3007c03bc8114990c8b31bd030820</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STAT_ITEM_NO_UNIT</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga5302c4affa8c6f44c37d58782abc1cc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_stat_item_handler_t</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gabebffafb8b666e2a52c0c4784eeabfbf</anchor>
      <arglist>)(struct osmo_stat_item_group *, struct osmo_stat_item *, void *)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_stat_item_group_handler_t</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gab6f48cb83fad5c21428d2dbb02af048a</anchor>
      <arglist>)(struct osmo_stat_item_group *, void *)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_group_alloc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gaa1a7c1500d64a803883ee7ff12ccf963</anchor>
      <arglist>(void *ctx, const struct osmo_stat_item_group_desc *group_desc, unsigned int idx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_stat_item_group_udp_idx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad86cf00ee8f70547c5b80159cf7d4678</anchor>
      <arglist>(struct osmo_stat_item_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item *</type>
      <name>osmo_stat_item_group_get_item</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad0553a8db021f131aca944e4200785ec</anchor>
      <arglist>(struct osmo_stat_item_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_set_name</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gadf35c36fb3cefaba1a1f9d7daa68bdf4</anchor>
      <arglist>(struct osmo_stat_item_group *statg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_free</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga070d81e1291c4f54abfb159cda2b5340</anchor>
      <arglist>(struct osmo_stat_item_group *grp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_inc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga45140f45c0e7e057f83c97ddab5330e6</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_dec</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga462b34eb55a9432b335f5e2cc32a5498</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_set</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gabf7ea5516b1929ca8b8b2d2e51c0f662</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_init</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga9ac290aa2ab34c36fc86bf620adec408</anchor>
      <arglist>(void *tall_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_get_group_by_name_idx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga59062bfcaa3f804df9ac69bcf52a2fb4</anchor>
      <arglist>(const char *name, const unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_get_group_by_name_idxname</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga49dec12c98ad324d7c255c8a4f9f6437</anchor>
      <arglist>(const char *group_name, const char *idx_name)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_stat_item *</type>
      <name>osmo_stat_item_get_by_name</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga088dc4ca88656f25e0a0a6bdfb024bc1</anchor>
      <arglist>(const struct osmo_stat_item_group *statg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_stat_item_get_last</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga595e25b76fdca35c9e2ec5b4e4e4410a</anchor>
      <arglist>(const struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_flush</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga312b34dbb43757e505c5c215592c7552</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_for_each_item</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga4b20503c85250536c1fe215aa8f0caac</anchor>
      <arglist>(struct osmo_stat_item_group *statg, osmo_stat_item_handler_t handle_item, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_for_each_group</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gae1367b44f93a6ea46cbe90a955b06dda</anchor>
      <arglist>(osmo_stat_item_group_handler_t handle_group, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_reset</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad3d919ff9ce0c85a69388252aeb257c9</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_reset</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga9522e7b07091b7ad531a41f07764359f</anchor>
      <arglist>(struct osmo_stat_item_group *statg)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_stat_item_desc *</type>
      <name>osmo_stat_item_get_desc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga2b5922d91fc40c32c41e59dd7f87c9b7</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>statistics.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>statistics_8h.html</filename>
    <includes id="counter_8h" name="counter.h" local="no" imported="no">osmocom/core/counter.h</includes>
  </compound>
  <compound kind="file">
    <name>stats.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>stats_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">osmo_stats_reporter</class>
    <class kind="struct">osmo_stats_config</class>
    <member kind="enumeration">
      <type></type>
      <name>osmo_stats_class</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gafddb6e01c247cdbeed1be06d9796aea3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_UNKNOWN</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a0459a5d9b53597f2203ec2d77dfbc2a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_GLOBAL</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a3ad84bbf056b57bdc89e245c56174038</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_PEER</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a2ecdba3d9fb058b4599b47fce4e74471</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_SUBSCRIBER</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a5e588a697b84b76f628a63e2acb54f5e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_stats_reporter_type</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga920dfa18cd7fbbf34f52c6dcf92d692d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_REPORTER_LOG</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gga920dfa18cd7fbbf34f52c6dcf92d692da359f33b122453c1bfbbdcd4028091f6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_REPORTER_STATSD</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gga920dfa18cd7fbbf34f52c6dcf92d692da46bb81b0d1d1fe55f6fa50018e82cba8</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stats_init</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab6f9cb91a533a0b2a30cd075ec811acc</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_report</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga7b9e1f1d7a9e1e469fbb796bbe019fbc</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_set_interval</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga6b876111cf8223000e1e68aa85fa021d</anchor>
      <arglist>(int interval)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_alloc</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga0a6f227702938604e3162499395a1a9d</anchor>
      <arglist>(enum osmo_stats_reporter_type type, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stats_reporter_free</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga16a001641deb34a4ff7106cf00bee62b</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_find</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga71590de43187f692b30b3ff315f11efb</anchor>
      <arglist>(enum osmo_stats_reporter_type type, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_remote_addr</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga898201b3f86936afe7c767e72fabd30a</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_remote_port</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga34ef3e79272f99afdca7ed7c2eeaf844</anchor>
      <arglist>(struct osmo_stats_reporter *srep, int port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_local_addr</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab9a3e2056ec39cb2013e8dc3da7461d9</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_mtu</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga55a1ab6d22940d1d19356e9c5dd0f6a5</anchor>
      <arglist>(struct osmo_stats_reporter *srep, int mtu)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_max_class</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga510a4ce51e37e732238cf3b0ba9c5d34</anchor>
      <arglist>(struct osmo_stats_reporter *srep, enum osmo_stats_class class_id)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_name_prefix</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1be0c1ca85a6f3cac145394648e973e3</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *prefix)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_enable</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gad4c76af3ecaf57ea243193bf33321da8</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_disable</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga411097be97933654c345f9fc29a27abc</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_flush_period</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2a07dfcee5d2d5bf13a287fc8f45adce</anchor>
      <arglist>(struct osmo_stats_reporter *srep, unsigned int period)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_create_log</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaa6e7ebfa5b99d90a5b465c93c8d40175</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_create_statsd</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga82f58af39526c20141673c7c33e8b1cc</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_send</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gadad3370deddae99f492506c173136a5b</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *data, int data_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_send_buffer</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gad6f5b67ba5486abddbd1029bee186c74</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_udp_open</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga11fa50b5ad82e9805e8cbfa9910d3da4</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_udp_close</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga70ec5896932d94079ad55a537b7c5327</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>osmo_stats_reporter_list</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaef85c887394f0465c12a1fe46dfee1b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stats_config *</type>
      <name>osmo_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga69cc1eef57bf721fad3eb0b08b44231a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>stats_tcp.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>stats__tcp_8h.html</filename>
    <class kind="struct">osmo_tcp_stats_config</class>
    <member kind="define">
      <type>#define</type>
      <name>TCP_STATS_DEFAULT_INTERVAL</name>
      <anchorfile>stats__tcp_8h.html</anchorfile>
      <anchor>ad9658c054e394a2e15fccee972351a03</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TCP_STATS_DEFAULT_BATCH_SIZE</name>
      <anchorfile>stats__tcp_8h.html</anchorfile>
      <anchor>ac39790b9286408b6d265c0747e9723aa</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_osmo_fd_register</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga355e09b1123c1271eeb5122a4b522349</anchor>
      <arglist>(const struct osmo_fd *fd, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_osmo_fd_unregister</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga05b395c0e693d508ce0eb6bbec07a506</anchor>
      <arglist>(const struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_set_interval</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga867c62bffd27c6066a952a2b061b888b</anchor>
      <arglist>(int interval)</arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_tcp_stats_config *</type>
      <name>osmo_tcp_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga240c607283cc0da3b2f1732fa54b6ca6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>strrb.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>strrb_8h.html</filename>
    <class kind="struct">osmo_strrb</class>
    <member kind="define">
      <type>#define</type>
      <name>RB_MAX_MESSAGE_SIZE</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gae7ea3048b7595e37ccb8f1039d98c5b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>struct osmo_strrb *</type>
      <name>osmo_strrb_create</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gaaab7bfea64d0b1b7e86dbd717d253a30</anchor>
      <arglist>(void *talloc_ctx, size_t rb_size)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_strrb_is_empty</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gaa8d2f58d4f27e99836d85b5e5c568136</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strrb_get_nth</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>ga284dcee685ff37d0138d1f739ff24d20</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int string_index)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_osmo_strrb_is_bufindex_valid</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gaa84efdd0a46d6212b416957432cf87a7</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int offset)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strrb_elements</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gac730d01ff38c9eb9e9f10ce1f12cf3f0</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_strrb_add</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>ga3d8e138301a2fc21779b7259831a677c</anchor>
      <arglist>(struct osmo_strrb *rb, const char *data)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>talloc.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>talloc_8h.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">talloc.h</includes>
    <class kind="struct">osmo_talloc_contexts</class>
    <member kind="define">
      <type>#define</type>
      <name>OTC_GLOBAL</name>
      <anchorfile>talloc_8h.html</anchorfile>
      <anchor>a047149c0d5de9b64e05d7ea7bd7dd9ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OTC_SELECT</name>
      <anchorfile>talloc_8h.html</anchorfile>
      <anchor>a6c9bce5027ec224e09144ae02980a152</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ctx_init</name>
      <anchorfile>talloc_8h.html</anchorfile>
      <anchor>a0681c199afa71168cc7ff457fb403a5b</anchor>
      <arglist>(const char *id)</arglist>
    </member>
    <member kind="variable">
      <type>__thread struct osmo_talloc_contexts *</type>
      <name>osmo_ctx</name>
      <anchorfile>talloc_8h.html</anchorfile>
      <anchor>a0e806d75c80e71a111b18314b6b919bf</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tdef.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>tdef_8h.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <class kind="struct">osmo_tdef</class>
    <class kind="struct">osmo_tdef_state_timeout</class>
    <class kind="struct">osmo_tdef_group</class>
    <member kind="define">
      <type>#define</type>
      <name>osmo_tdef_for_each</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga9bfa6d2933254ee56979be1f0230cf71</anchor>
      <arglist>(t, tdefs)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_tdef_fsm_inst_state_chg</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga62ef360585a2162bcac01c588025ce97</anchor>
      <arglist>(fi, state, timeouts_array, tdefs, default_timeout)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_tdef_groups_for_each</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga6b2e21ca953ab535e36f9b851d9558a5</anchor>
      <arglist>(g, tdef_groups)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_tdef_unit</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gaab870deed1871d59911bcd465b410f6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_S</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aacd7acf38bfb806b297369d3967b8151d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_MS</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aae9571204a5e1dc1b575f94c11bc47474</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_M</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aa757bb613b8f209d4d9e0c2d6622e06bc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_CUSTOM</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aa12615b1124e5e25e0a0ad4e5b13adef5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_US</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aa4cf1495f9310e61a17527be25486e4cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_tdef_unit_name</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0625620798fea884f7a63efbc58defd1</anchor>
      <arglist>(enum osmo_tdef_unit val)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tdefs_reset</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0a2cda1d30e23023cc179b68b8c624e6</anchor>
      <arglist>(struct osmo_tdef *tdefs)</arglist>
    </member>
    <member kind="function">
      <type>unsigned long</type>
      <name>osmo_tdef_get</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga1902036c8ce361a6ba043b90f3026ae7</anchor>
      <arglist>(const struct osmo_tdef *tdefs, int T, enum osmo_tdef_unit as_unit, long val_if_not_present)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_tdef *</type>
      <name>osmo_tdef_get_entry</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga165520a7b18876662703753759941e00</anchor>
      <arglist>(struct osmo_tdef *tdefs, int T)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tdef_set</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gab2f59867f10a781019db1d52c991ce95</anchor>
      <arglist>(struct osmo_tdef *tdefs, int T, unsigned long val, enum osmo_tdef_unit val_unit)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_tdef_val_in_range</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4b9908c0c45f1226f4fae760141d54b4</anchor>
      <arglist>(struct osmo_tdef *tdef, unsigned long new_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tdef_range_str_buf</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga88e3725d03ea8ab0edf8013333dfedad</anchor>
      <arglist>(char *buf, size_t buf_len, struct osmo_tdef *t)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_tdef_state_timeout *</type>
      <name>osmo_tdef_get_state_timeout</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga5a7532bad13a88526390b8f3c6db3374</anchor>
      <arglist>(uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_tdef_fsm_inst_state_chg</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0949811a3638747d3ba5fc2eeba9b94c</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, const struct osmo_tdef *tdefs, signed long default_timeout, const char *file, int line)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_tdef_unit_names</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4ad5be5f9d49274b4bce18320cf251b5</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>thread.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>thread_8h.html</filename>
    <member kind="function">
      <type>pid_t</type>
      <name>osmo_gettid</name>
      <anchorfile>group__thread.html</anchorfile>
      <anchor>gab13692b0278938fdaf76c8919c842403</anchor>
      <arglist>(void)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>time_cc.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>time__cc_8h.html</filename>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <class kind="struct">osmo_time_cc_cfg</class>
    <class kind="struct">osmo_time_cc</class>
    <member kind="function">
      <type>void</type>
      <name>osmo_time_cc_init</name>
      <anchorfile>group__time__cc.html</anchorfile>
      <anchor>gad234a5e207b1cef57390a2390ed8fc8e</anchor>
      <arglist>(struct osmo_time_cc *tc)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_time_cc_set_flag</name>
      <anchorfile>group__time__cc.html</anchorfile>
      <anchor>ga1feb41a008ddeffe6b77a8d2569a14d4</anchor>
      <arglist>(struct osmo_time_cc *tc, bool flag)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_time_cc_cleanup</name>
      <anchorfile>group__time__cc.html</anchorfile>
      <anchor>ga4586caf5730ea675afb0dfd64a1ade32</anchor>
      <arglist>(struct osmo_time_cc *tc)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>timer.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>timer_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="linuxrbtree_8h" name="linuxrbtree.h" local="no" imported="no">osmocom/core/linuxrbtree.h</includes>
    <includes id="timer__compat_8h" name="timer_compat.h" local="no" imported="no">osmocom/core/timer_compat.h</includes>
    <class kind="struct">osmo_timer_list</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SEC2MIN</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaeb0aef725070ccb9dde39f04560edd87</anchor>
      <arglist>(sec)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SEC2HRS</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga5bd927eac440e0f201f75db8807fac16</anchor>
      <arglist>(sec)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SEC2DAY</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaef03caac6db664db7f175d1343408bec</anchor>
      <arglist>(sec)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_setup</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7d8def422a9bf39b4d5aefa1fec319e0</anchor>
      <arglist>(struct osmo_timer_list *timer, void(*cb)(void *data), void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8eb1bef581081eb105265e56b15945fa</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_schedule</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga93a296b92775fc08c60eb154a3389e5b</anchor>
      <arglist>(struct osmo_timer_list *timer, int seconds, int microseconds)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_del</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga1aa977a3eb2d5b5447b8acd32002b6cf</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timer_pending</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gacf319b1650bff4a8d1536d7557b45563</anchor>
      <arglist>(const struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timer_remaining</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga0e6d99128b6f5e318df78a20c022c068</anchor>
      <arglist>(const struct osmo_timer_list *timer, const struct timeval *now, struct timeval *remaining)</arglist>
    </member>
    <member kind="function">
      <type>struct timeval *</type>
      <name>osmo_timers_nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga5766d10a219da5e6ab283fede26d2e40</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_nearest_ms</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaf7cf25cb666a6c07994b979dc83838fe</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timers_prepare</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga420626edb507e81884f9842572a83467</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_update</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaf8d555ef1c2e59ed54f0e12e2ee1f41c</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_check</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gada843afa93f84337776c8efc1b539fe3</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_gettimeofday</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8c559c124f4720d0a54af5f206681049</anchor>
      <arglist>(struct timeval *tv, struct timezone *tz)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_clock_gettime</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac11a65dfcd1245fa716356d3650d2a6e</anchor>
      <arglist>(clockid_t clk_id, struct timespec *tp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_gettimeofday_override_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gafcbae57ab2c2635d0dd248ec3011bd1c</anchor>
      <arglist>(time_t secs, suseconds_t usecs)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_clock_override_enable</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga3e8cfe4cad482612d1bd8a3df75d2d02</anchor>
      <arglist>(clockid_t clk_id, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_clock_override_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga86a811781179d144f268c0986b7140a9</anchor>
      <arglist>(clockid_t clk_id, time_t secs, long nsecs)</arglist>
    </member>
    <member kind="function">
      <type>struct timespec *</type>
      <name>osmo_clock_override_gettimespec</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga08c514dddc196eaa1422dbdee8250b70</anchor>
      <arglist>(clockid_t clk_id)</arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>osmo_gettimeofday_override</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac10c80c84b5f61c509d36f59de66e42f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct timeval</type>
      <name>osmo_gettimeofday_override_time</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac0b4877db25000054ec9226dc39a7a79</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>timer_compat.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>timer__compat_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>timerisset</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7a6810e8127f008279242fba997a26a3</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timerclear</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gab95d90a9147b65d4ec1fab6bd2db6d1f</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timercmp</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga9740b405322c5d2a83d93426df96f79a</anchor>
      <arglist>(a, b, CMP)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timeradd</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7c04f2eb10391cb3ca3b47882d23d2de</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timersub</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8b18f762e42417ce5d86090331d3e4eb</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecisset</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga51ac4b0f81c859d848603902aa4589cb</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecclear</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga22bb57ee2311580af998bad329a7a914</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespeccmp</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac4d93ba1cba658e2cf0d52b93593055e</anchor>
      <arglist>(a, b, CMP)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecadd</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga9b866aa4069676f631f63d80a61d1116</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecsub</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaaf525183a6e0d9903a2511619c57d2ce</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tun.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>tun_8h.html</filename>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="netdev_8h" name="netdev.h" local="no" imported="no">osmocom/core/netdev.h</includes>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_tundev_data_ind_cb_t</name>
      <anchorfile>tun_8h.html</anchorfile>
      <anchor>a076cdf0d89e71c9804bd0acde8560204</anchor>
      <arglist>)(struct osmo_tundev *tun, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_tundev *</type>
      <name>osmo_tundev_alloc</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga36875a4a026aacc52bf5d45569d2e523</anchor>
      <arglist>(void *ctx, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_free</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaa5a54e97b016d59ed2b03a16491eda76</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_open</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae6ce16c4c73663ae523b4e3a2638d644</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_close</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gad321860ec0c2be297c48d580918c811c</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_tundev_is_open</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga384c5bfc84a2fd78a8730adacd6061d1</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_set_priv_data</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga35fdce0913f5c26802ef2350cd0531ef</anchor>
      <arglist>(struct osmo_tundev *tundev, void *priv_data)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_tundev_get_priv_data</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga73eeb43489a75e38c495a1aabebdf7bf</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_set_data_ind_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab4cc44199ac0b7ab25cd0b3444d76c7d</anchor>
      <arglist>(struct osmo_tundev *tundev, osmo_tundev_data_ind_cb_t data_ind_cb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaae3e8b0fe9f1bc8b6dbfd5b26ef0df2b</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_get_fd</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga841211492d9aeed4f1b0fbe451b42584</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_set_dev_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga58fa0f32b02698e91cdbfff89e44307d</anchor>
      <arglist>(struct osmo_tundev *tundev, const char *dev_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_dev_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga22ef1c28ec0c985e742950ef331270bc</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_set_netns_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae31a6b8fa612faaf21aaa0c339e23e0b</anchor>
      <arglist>(struct osmo_tundev *tundev, const char *netns)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_netns_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaa71cfeea8d70f6527a5c9f8e59c2d790</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_netdev *</type>
      <name>osmo_tundev_get_netdev</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga7787e7fe210d9c7ea62a49042412ac20</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_send</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gabd21998a822758c2de51a029d4378f65</anchor>
      <arglist>(struct osmo_tundev *tundev, struct msgb *msg)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>use_count.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>use__count_8h.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">osmo_use_count</class>
    <class kind="struct">osmo_use_count_entry</class>
    <member kind="define">
      <type>#define</type>
      <name>osmo_use_count_get_put</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga3457c05c5d2b707d99eb01704dc5f233</anchor>
      <arglist>(USE_LIST, USE, CHANGE)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_use_count_cb_t</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga4497d9dc69e733d16d33a455d385931e</anchor>
      <arglist>)(struct osmo_use_count_entry *use_count_entry, int32_t old_use_count, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_use_count_get_put</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gad3fc149e66e6f9157843169f27ce571a</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use, int32_t change, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_use_count_name_buf</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga7b49bfded7003847ba6bcf2e021cb4d9</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_use_count_to_str_buf</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga0a979c7c3979e7cbb0981172c426a00f</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_use_count_to_str_c</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gac2e6c82a4809bae02212a09ce1e22a21</anchor>
      <arglist>(void *ctx, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_use_count_total</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga34703c11c4da78bebd3322635b57e698</anchor>
      <arglist>(const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_use_count_by</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gae221053a7e938cc89864a29cd72bb971</anchor>
      <arglist>(const struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_use_count_entry *</type>
      <name>osmo_use_count_find</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga0dcc3abaab263ca652b99214f2396298</anchor>
      <arglist>(const struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_use_count_free</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga7d4005ec0820c11ef960ea966b6baff9</anchor>
      <arglist>(struct osmo_use_count_entry *use_count_entry)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_use_count_make_static_entries</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga1d3601b4f5093407d57ca3f5e1c093cc</anchor>
      <arglist>(struct osmo_use_count *uc, struct osmo_use_count_entry *buf, size_t buf_n_entries)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>utils.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>utils_8h.html</filename>
    <includes id="backtrace_8h" name="backtrace.h" local="no" imported="no">osmocom/core/backtrace.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="panic_8h" name="panic.h" local="no" imported="no">osmocom/core/panic.h</includes>
    <includes id="defs_8h" name="defs.h" local="no" imported="no">osmocom/core/defs.h</includes>
    <class kind="struct">value_string</class>
    <class kind="struct">osmo_strbuf</class>
    <member kind="define">
      <type>#define</type>
      <name>ARRAY_SIZE</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6242a25f9d996f0cc4f4cdb911218b75</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MAX</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae29f3c348613687ee200b5632cf25baa</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MIN</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1f5ad4e4f1d11d303c80570dfe535b43</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_CMP</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga85b341fffd41bb9900b0ede1f24295f0</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRINGIFY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga99c393c0cc777531381ef27b9e63fa01</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRINGIFY_VAL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9273786c95d1934af2aa371d63c7611a</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_VALUE_STRING</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaec58324388fc88645f98b409bfedf1b3</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BYTES_FOR_BITS</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga067f0d8cff5425054650f5562d25e6a4</anchor>
      <arglist>(BITS)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRLCPY_ARRAY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga355219208ac32aa4ce67361306c45f33</anchor>
      <arglist>(array, src)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LIKELY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga86f03e8039d84cdb5cd191561bb20815</anchor>
      <arglist>(exp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_UNLIKELY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga02420271059f041f43be5593c8378226</anchor>
      <arglist>(exp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_static_assert</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa235735a8fc8c2dc05243d6c8d355cc9</anchor>
      <arglist>(exp, name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SNPRINTF_RET</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae2fd89d51ccb1101e04eb2d2c6d57cb0</anchor>
      <arglist>(ret, rem, offset, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_ASSERT</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga0e15c1ca106fdf15e53b6b8cb30e87dd</anchor>
      <arglist>(exp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_talloc_asprintf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab694a7bcd176825e1b7fd43fdd13eeaa</anchor>
      <arglist>(ctx, dest, fmt, args ...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MOD_FLR</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaba46e9a38032320a7cc816056d94177f</anchor>
      <arglist>(x, y)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MOD_EUC</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5590f4ac10e4986cd36ac9cc23021c8f</anchor>
      <arglist>(x, y)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_APPEND</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gafff80b7c628a7b9138d0d663f6554de2</anchor>
      <arglist>(STRBUF, func, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_PRINTF</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5d295313b60e7dfe54cd0cd091733d49</anchor>
      <arglist>(STRBUF, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_REMAIN</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac498e594ee1e828ecac2f13907a73bc6</anchor>
      <arglist>(STRBUF)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_CHAR_COUNT</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga35daf5bea23a8e172e32f8e321b191c2</anchor>
      <arglist>(STRBUF)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_APPEND_NOLEN</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaba053478cf0abc6d10ada0851e796a4b</anchor>
      <arglist>(STRBUF, func, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_DROP_TAIL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8aca577fe1c05f829a5399d141e4aa2c</anchor>
      <arglist>(STRBUF, N_CHARS)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_ADDED_TAIL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5e4bfb6fa08dec1257c3e6b4e6d442dd</anchor>
      <arglist>(STRBUF, N_CHARS)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_NAME_C_IMPL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae8fb831ea7b48b5d54f3a5a5f0a30bf</anchor>
      <arglist>(CTX, INITIAL_BUFSIZE, ON_ERROR, FUNC_BUF, FUNC_BUF_ARGS...)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>get_value_string</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaf5e6416f5d73a1ff2e7bdb0e434d10d7</anchor>
      <arglist>(const struct value_string *vs, uint32_t val)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>get_value_string_or_null</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac44be7d0bc776c31efd951653bcbe0cd</anchor>
      <arglist>(const struct value_string *vs, uint32_t val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>get_string_value</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4df5d6ff3d338b9cf4ca59d2cc884d7f</anchor>
      <arglist>(const struct value_string *vs, const char *str)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>osmo_bcd2char</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaaf78cfb7a88674f118451b9279306c22</anchor>
      <arglist>(uint8_t bcd)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>osmo_char2bcd</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae5cbea0fd5e1594354d115912d46454c</anchor>
      <arglist>(char c)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_bcd2str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga422bbc07222f809d350ad39fb894c803</anchor>
      <arglist>(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str2bcd</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab595e5dac6365b78f85b07bb792da4de</anchor>
      <arglist>(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_hexparse</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa417dc14b499d59106491b55a1c74b62</anchor>
      <arglist>(const char *str, uint8_t *b, unsigned int max_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_ubit_dump_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga48a25995cfdcb169407c0285e318b5ab</anchor>
      <arglist>(char *buf, size_t buf_len, const uint8_t *bits, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_ubit_dump</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5df14e6f8be6d0581b9ef9138b8cc85f</anchor>
      <arglist>(const uint8_t *bits, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadfc3801536ff055305f7b2563539237f</anchor>
      <arglist>(const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae0e18c985d66a2affda7e8ab54a13f9e</anchor>
      <arglist>(const void *ctx, const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_nospc</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga58cacabcd4862f29a9aa57dd2627c976</anchor>
      <arglist>(const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_nospc_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaedfb568cb4c765446cc1beab4db24b5c</anchor>
      <arglist>(const void *ctx, const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_hexdump_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2dd24d5b9cab288e90a2067c8dbc9a78</anchor>
      <arglist>(char *out_buf, size_t out_buf_size, const unsigned char *buf, int len, const char *delim, bool delim_after_last)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_osmo_hexdump_nospc</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8c02a287e85ffb5defb781447366b8b3</anchor>
      <arglist>(const unsigned char *buf, int len) __attribute__((__deprecated__))</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_str2lower</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab4197cdbb099e3677ebe9bd3538a6d85</anchor>
      <arglist>(char *out, const char *in) OSMO_DEPRECATED(&quot;Use osmo_str_tolower() or osmo_str_tolower_buf() instead</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_str2upper</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaeeb71577609999862abe6abde44153fc</anchor>
      <arglist>(char *out, const char *in) OSMO_DEPRECATED(&quot;Use osmo_str_toupper() or osmo_str_toupper_buf() instead</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_str_tolower_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8912910863d88f52b9d62220ee66feed</anchor>
      <arglist>(char *dest, size_t dest_len, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_str_tolower</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad40fab125b7c9f19ef1789f299a7617d</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_str_tolower_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga20e4677fb667ab35e8cdc556f46f0043</anchor>
      <arglist>(const void *ctx, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_str_toupper_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga7134740c825b2f4b604e825aa6f06c58</anchor>
      <arglist>(char *dest, size_t dest_len, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_str_toupper</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga02a608b84c87fa5cd65dcefc4c56b552</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_str_toupper_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga26450c1810f5f49e46865c9ea16737c0</anchor>
      <arglist>(const void *ctx, const char *src)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_talloc_replace_string</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga44e4192da7885c2f45e8d46cb9a6c0c1</anchor>
      <arglist>(void *ctx, char **dst, const char *newstr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_talloc_replace_string_fmt</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3c2b44ccd3575ebf985c63fab6158cd6</anchor>
      <arglist>(void *ctx, char **dst, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_constant_time_cmp</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9617b49a3abc34328ce8fa3eafcdc938</anchor>
      <arglist>(const uint8_t *exp, const uint8_t *rel, const int count)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>osmo_decode_big_endian</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga527e54191de66b00edd22500017da9ad</anchor>
      <arglist>(const uint8_t *data, size_t data_len)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t *</type>
      <name>osmo_encode_big_endian</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab461793c9157461119e621710f3f340c</anchor>
      <arglist>(uint64_t value, size_t data_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strlcpy</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2e880620479e4b79e28cc817cf451f9c</anchor>
      <arglist>(char *dst, const char *src, size_t siz)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strnchr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3a809d9d2539c0bb3683ae4f0d16decc</anchor>
      <arglist>(const char *str, size_t str_size, char c)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_is_hexstr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab40f5a73ddd1f2c641ed0da0ca08093d</anchor>
      <arglist>(const char *str, int min_digits, int max_digits, bool require_even)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_identifier_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadfd0a4c05af8693393a7d0afa6899ff3</anchor>
      <arglist>(const char *str)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_separated_identifiers_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gabac697c1ef493cb5691eb5f11c4af984</anchor>
      <arglist>(const char *str, const char *sep_chars)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_identifier_sanitize_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga7165f91d0b488d150f8ba3bc83cba590</anchor>
      <arglist>(char *str, const char *sep_chars, char replace_with)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_escape_cstr_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab2348926540f8c8a56f4e6a17c996f7f</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_cstr_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab8a8241576fe2a82726e0ac2d2e624f5</anchor>
      <arglist>(void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_quote_cstr_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga20f2471a0f60241c8e63c9ee18217b41</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_cstr_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga26e74d38fd7a65f5a6ea35161c656e90</anchor>
      <arglist>(void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_escape_str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab9fb9032407e96924732bf60f4476195</anchor>
      <arglist>(const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_escape_str_buf3</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6b4866958eb385b561fc1fa91db242e7</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_str_buf2</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab6d6c37d5cc2807eb63b41498f38fb9d</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_escape_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad3cf1d094e625a962737b4ba9c2a5632</anchor>
      <arglist>(const char *str, int in_len, char *buf, size_t bufsize)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga46ac4f967deb6a2e8c4a1930273bfbbd</anchor>
      <arglist>(const void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_quote_str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab25c98708ddc0828695a54a72c711b62</anchor>
      <arglist>(const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_quote_str_buf3</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaad5dccba528c2ea4f9156dc61539ce79</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_str_buf2</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4f3b36bc5fd6e474f7f4caa67eb966c2</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_quote_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad5c8e9dbe2d66556fde2a49418d2db89</anchor>
      <arglist>(const char *str, int in_len, char *buf, size_t bufsize)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga333f103771c3b46336103b57e2bc047c</anchor>
      <arglist>(const void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_print_n</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga412b892efd1aa17d024863cd103f3fbc</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, size_t n)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_isqrt32</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga96865bcbbc856166d1b0fbbd00bb9e38</anchor>
      <arglist>(uint32_t x)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>osmo_luhn</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga780f2653cc84daa994053e5f54349057</anchor>
      <arglist>(const char *in, int in_len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>_osmo_strbuf_remain</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2505d8e3b82c608039ef6df2897ec561</anchor>
      <arglist>(const struct osmo_strbuf *sb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>_osmo_strbuf_char_count</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4216b0fe4cfd873c359bcf34a4dd7fc6</anchor>
      <arglist>(const struct osmo_strbuf *sb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_strbuf_drop_tail</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2f3bd04cb9d1371b4e1b3ff0029f7238</anchor>
      <arglist>(struct osmo_strbuf *sb, size_t n_chars)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_strbuf_added_tail</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1b89d94b3562b0b3261aff7c1ce4c395</anchor>
      <arglist>(struct osmo_strbuf *sb, size_t n_chars)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_str_startswith</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4a6c1ebef675be298cab13bb226e5baa</anchor>
      <arglist>(const char *str, const char *startswith_str)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_float_str_to_int</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae0fa80cc1a996386d83a5ebb2d57f8b</anchor>
      <arglist>(int64_t *val, const char *str, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_int_to_float_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gafbbe67276ab1495e5d05eed369e65d92</anchor>
      <arglist>(char *buf, size_t buflen, int64_t val, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_int_to_float_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga89e052fb363e9a8b00a686c6f3db0126</anchor>
      <arglist>(void *ctx, int64_t val, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str_to_int64</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga503b0048081b15fd438bedce2173d5db</anchor>
      <arglist>(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str_to_int</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4f16a335e3ab7c88595b23acfd7c6693</anchor>
      <arglist>(int *result, const char *str, int base, int min_val, int max_val)</arglist>
    </member>
    <member kind="variable">
      <type>void to properly check target memory</type>
      <name>bounds</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac42d57a93bf148fdb275fde47abca8df</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>version.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>version_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>LIBOSMOCORE_VERSION</name>
      <anchorfile>version_8h.html</anchorfile>
      <anchor>ab907f865df8cb135d7e1a0cfb16b1ffe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LIBOSMOCORE_VERSION_STR</name>
      <anchorfile>version_8h.html</anchorfile>
      <anchor>aa34bcb344cf40234c50558670f01dc9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LIBOSMOCORE_VERSION_MAJOR</name>
      <anchorfile>version_8h.html</anchorfile>
      <anchor>a485cafcfb63081cdfa75e29ad72fd52c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LIBOSMOCORE_VERSION_MINOR</name>
      <anchorfile>version_8h.html</anchorfile>
      <anchor>a1cc71b841eb1ec571d376da8416f9605</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LIBOSMOCORE_VERSION_PATCH</name>
      <anchorfile>version_8h.html</anchorfile>
      <anchor>a5f35faa6fdea4f3ad14db027912b4433</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LIBOSMOCORE_VERSION_GREATER_EQUAL</name>
      <anchorfile>version_8h.html</anchorfile>
      <anchor>ac8b5fb1145aa41b95807f78891fe80eb</anchor>
      <arglist>(major, minor, patch)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>write_queue.h</name>
    <path>/build/_osmocom_api/libosmocore/include/osmocom/core/</path>
    <filename>write__queue_8h.html</filename>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <class kind="struct">osmo_wqueue</class>
    <member kind="function">
      <type>void</type>
      <name>osmo_wqueue_init</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>gacca6343dd66b8cac8a5055b2a16eb990</anchor>
      <arglist>(struct osmo_wqueue *queue, int max_length)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_wqueue_clear</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga833b4f5244c00c775260a83e9918073c</anchor>
      <arglist>(struct osmo_wqueue *queue)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_enqueue</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga9855de966a4f01d6df3a747422b02824</anchor>
      <arglist>(struct osmo_wqueue *queue, struct msgb *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_enqueue_quiet</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga7d4207497c2a2852f98ecf805424a504</anchor>
      <arglist>(struct osmo_wqueue *queue, struct msgb *data)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_wqueue_set_maxlen</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga662e3311b8f57f2cbc0fbe741462dbca</anchor>
      <arglist>(struct osmo_wqueue *queue, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_bfd_cb</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga56bb1b9d13a946be09fdbf400545d7ad</anchor>
      <arglist>(struct osmo_fd *fd, unsigned int what)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>application.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>application_8c.html</filename>
    <includes id="application_8h" name="application.h" local="no" imported="no">osmocom/core/application.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="signal_8h" name="signal.h" local="no" imported="no">signal.h</includes>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>sighup_hdlr</name>
      <anchorfile>application_8c.html</anchorfile>
      <anchor>a4f4e1198dab0d79568b59722aceba92c</anchor>
      <arglist>(int signal)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_init_ignore_signals</name>
      <anchorfile>application_8c.html</anchorfile>
      <anchor>a38dc37d2cf97c98bcb1d713794ff2a75</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_init_logging</name>
      <anchorfile>application_8c.html</anchorfile>
      <anchor>a44188167ba583111b73c1bd983ffe32f</anchor>
      <arglist>(const struct log_info *log_info)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_init_logging2</name>
      <anchorfile>application_8c.html</anchorfile>
      <anchor>a4b11cf941dd9e32e89bd24d56a808ecc</anchor>
      <arglist>(void *ctx, const struct log_info *log_info)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_daemonize</name>
      <anchorfile>application_8c.html</anchorfile>
      <anchor>aa6ae82e2c37662eda7093d3db1b3b830</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="variable">
      <type>struct log_target *</type>
      <name>osmo_stderr_target</name>
      <anchorfile>application_8c.html</anchorfile>
      <anchor>a2f56746f90c8f8065e8f33c007e5505e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>backtrace.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>backtrace_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <member kind="function">
      <type>void</type>
      <name>osmo_generate_backtrace</name>
      <anchorfile>backtrace_8c.html</anchorfile>
      <anchor>ae1d7c5276d845c48c0b964a1033b6c60</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_log_backtrace</name>
      <anchorfile>backtrace_8c.html</anchorfile>
      <anchor>a89adddebf59157ca25eb6cb422a02151</anchor>
      <arglist>(int subsys, int level)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>base64.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>base64_8c.html</filename>
    <includes id="base64_8h" name="base64.h" local="no" imported="no">osmocom/core/base64.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_base64_encode</name>
      <anchorfile>base64_8c.html</anchorfile>
      <anchor>a1808831840f22ba9774b6f108754dea9</anchor>
      <arglist>(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_base64_decode</name>
      <anchorfile>base64_8c.html</anchorfile>
      <anchor>a1674f5075736ca10c24f00ff6b2f0009</anchor>
      <arglist>(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned char</type>
      <name>base64_enc_map</name>
      <anchorfile>base64_8c.html</anchorfile>
      <anchor>ac2cbe10aa2936a9fce4c0f9bd9e7e01d</anchor>
      <arglist>[64]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned char</type>
      <name>base64_dec_map</name>
      <anchorfile>base64_8c.html</anchorfile>
      <anchor>a05aa2b28511eac04bd7d83ad744e9340</anchor>
      <arglist>[128]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bitcomp.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>bitcomp_8c.html</filename>
    <includes id="bitvec_8h" name="bitvec.h" local="no" imported="no">osmocom/core/bitvec.h</includes>
    <includes id="bitcomp_8h" name="bitcomp.h" local="no" imported="no">osmocom/core/bitcomp.h</includes>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>t4_rle</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga756816bc8897122169638ebaa12532c4</anchor>
      <arglist>(struct bitvec *bv, unsigned len, bool b)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_t4_encode</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>gaa4f70ee3b6e93fff44240366f0b6fedd</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_term</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga23f45a8097583b94fd090f42cb402bd3</anchor>
      <arglist>[2][64]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_term_length</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga5668d0369e3659129c72d2293da52d7b</anchor>
      <arglist>[2][64]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_make_up_length</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga8149edc38a2202a6fbaf3a39f388e50f</anchor>
      <arglist>[2][15]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_make_up</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga49df6e5268e7a8b4327e5d61ddc0bb04</anchor>
      <arglist>[2][15]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bits.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>bits_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_ubit2pbit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga0396755b3f1fb67dda62c6310bcefae5</anchor>
      <arglist>(pbit_t *out, const ubit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_nibble_shift_right</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gacc781ff2ed10005457258a5f435c96fb</anchor>
      <arglist>(uint8_t *out, const uint8_t *in, unsigned int num_nibbles)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_nibble_shift_left_unal</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga720f02d3e0b8ead8892ea2796551d5cf</anchor>
      <arglist>(uint8_t *out, const uint8_t *in, unsigned int num_nibbles)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_ubit2sbit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga9a76a29b0916e9cd26c5ca65dbbfb325</anchor>
      <arglist>(sbit_t *out, const ubit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sbit2ubit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga520d72b80bd83e41b58afe012005984f</anchor>
      <arglist>(ubit_t *out, const sbit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_pbit2ubit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga6061c0bccf3149afbfd3717655926610</anchor>
      <arglist>(ubit_t *out, const pbit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ubit2pbit_ext</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga55b990334c0b0188134d42b6a201d6bc</anchor>
      <arglist>(pbit_t *out, unsigned int out_ofs, const ubit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_pbit2ubit_ext</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7978cf8714618d6682751058818444c6</anchor>
      <arglist>(ubit_t *out, unsigned int out_ofs, const pbit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_bit_reversal</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gae4f3c9fa5d7ac188213d59dd8f83da40</anchor>
      <arglist>(uint32_t x, enum osmo_br_mode k)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_revbytebits_32</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7c83c316140d1209f4b2dc83b3eea5cf</anchor>
      <arglist>(uint32_t x)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_revbytebits_8</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gafe16634bf4f34bd4dd0f7bc5dcf54e33</anchor>
      <arglist>(uint8_t x)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_revbytebits_buf</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab44abd4982a164c8e2e5588d9fd81852</anchor>
      <arglist>(uint8_t *buf, int len)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const uint8_t</type>
      <name>flip_table</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7cc2859ee2b88036f7229b3e5102dfbe</anchor>
      <arglist>[256]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bitvec.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>bitvec_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="bitvec_8h" name="bitvec.h" local="no" imported="no">osmocom/core/bitvec.h</includes>
    <includes id="panic_8h" name="panic.h" local="no" imported="no">osmocom/core/panic.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>BITNUM_FROM_COMP</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga586608cc901ec22be0d175eb8d320a00</anchor>
      <arglist>(byte, bit)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>bytenum_from_bitnum</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga47c5a8afa396a44c819ac4e938552784</anchor>
      <arglist>(unsigned int bitnum)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint8_t</type>
      <name>bitval2mask</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga46d71adbe96a25e3eea080bcc0eca79e</anchor>
      <arglist>(enum bit_value bit, uint8_t bitnum)</arglist>
    </member>
    <member kind="function">
      <type>enum bit_value</type>
      <name>bitvec_get_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaafa5522adcd980634faa6059b9aee3a1</anchor>
      <arglist>(const struct bitvec *bv, unsigned int bitnr)</arglist>
    </member>
    <member kind="function">
      <type>enum bit_value</type>
      <name>bitvec_get_bit_pos_high</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga958c055f2e6c1983de24f970fcf351b2</anchor>
      <arglist>(const struct bitvec *bv, unsigned int bitnr)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_get_nth_set_bit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga586f2e477420cf97ff85fb5029409528</anchor>
      <arglist>(const struct bitvec *bv, unsigned int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga58af5972b3f9f9590ab677591ea08654</anchor>
      <arglist>(struct bitvec *bv, unsigned int bitnr, enum bit_value bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaaaec65c173424583952f3f8c87b8d9e0</anchor>
      <arglist>(struct bitvec *bv, enum bit_value bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_bit_high</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga9bc267f4f06fbc4d51754144ad195e01</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga8a35d07a2716e1d6d816a4028612e869</anchor>
      <arglist>(struct bitvec *bv, const enum bit_value *bits, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_u64</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3bc972c0ec080f82adb7cc1328c85e1c</anchor>
      <arglist>(struct bitvec *bv, uint64_t v, uint8_t num_bits, bool use_lh)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_uint</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gada7f0c0bad40354d9323db1ef53da13b</anchor>
      <arglist>(struct bitvec *bv, unsigned int ui, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int16_t</type>
      <name>bitvec_get_int16_msb</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga0a6fbad0ee12ac9b17af6eb0b49fce7a</anchor>
      <arglist>(const struct bitvec *bv, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_uint</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaca0563425ea4947dacaf33ce23cbe817</anchor>
      <arglist>(struct bitvec *bv, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_fill</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga58e79f89821667662d35ac16f296517f</anchor>
      <arglist>(struct bitvec *bv, unsigned int num_bits, enum bit_value fill)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_spare_padding</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga6c6bf6ae771c101a05b3695fff54e593</anchor>
      <arglist>(struct bitvec *bv, unsigned int up_to_bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_find_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga7366e9cd542a95177d1d906b1a83200d</anchor>
      <arglist>(const struct bitvec *bv, unsigned int n, enum bit_value val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga531d7610f179bbcb46cbe2fe8fafbc9e</anchor>
      <arglist>(struct bitvec *bv, uint8_t *bytes, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gae64f81294cb6f0521d7b03addcbedee2</anchor>
      <arglist>(struct bitvec *bv, const uint8_t *bytes, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>struct bitvec *</type>
      <name>bitvec_alloc</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga4fab97ef97d237370c1147e765f80a16</anchor>
      <arglist>(unsigned int size, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_free</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaed6f952768bfdfbb09491195cba83232</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_pack</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga309e4e3f006f160f016eca5ff9d29411</anchor>
      <arglist>(const struct bitvec *bv, uint8_t *buffer)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_unpack</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gad4c8196ee9a8cab04af60577ea0fcadf</anchor>
      <arglist>(struct bitvec *bv, const uint8_t *buffer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_unhex</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gae6aad886f187d967552ab8807dc84048</anchor>
      <arglist>(struct bitvec *bv, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>bitvec_read_field</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga465b2992b4abf3a6bd88244fb012215e</anchor>
      <arglist>(struct bitvec *bv, unsigned int *read_index, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_write_field</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gab76ababf6e79ccb51314d7e74381881a</anchor>
      <arglist>(struct bitvec *bv, unsigned int *write_index, uint64_t val, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>bit_value_to_char</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3ff0dbe3fbc6eb1b6c4a93a680e5d1c0</anchor>
      <arglist>(enum bit_value v)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_to_string_r</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5c0c73912905c1f4400869da0a7bb439</anchor>
      <arglist>(const struct bitvec *bv, char *str)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>leading_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga118debf7503fc8beaafc54d6b7b404f7</anchor>
      <arglist>(uint8_t x, bool b)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_zero</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gab3953b2f83b395699039b565edc803a3</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>bitvec_rl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaacff55d1b7b4749bb47998bff2ab69f9</anchor>
      <arglist>(const struct bitvec *bv, bool b)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>bitvec_rl_curbit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3dd2844a5868df3c3e33ccf04e9179cb</anchor>
      <arglist>(struct bitvec *bv, bool b, unsigned int max_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_shiftl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5037965c835b03f55f87cb0ab99f0cac</anchor>
      <arglist>(struct bitvec *bv, unsigned n)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_add_array</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaec9f2c4612b55bbbd840187f46d92e9c</anchor>
      <arglist>(struct bitvec *bv, const uint32_t *array, unsigned int array_len, bool dry_run, unsigned int num_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>context.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>context_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_ctx_init</name>
      <anchorfile>context_8c.html</anchorfile>
      <anchor>a0681c199afa71168cc7ff457fb403a5b</anchor>
      <arglist>(const char *id)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>__attribute__</name>
      <anchorfile>context_8c.html</anchorfile>
      <anchor>aaccfa584b67a141d9bde2002b9188845</anchor>
      <arglist>((constructor(101)))</arglist>
    </member>
    <member kind="variable">
      <type>__thread struct osmo_talloc_contexts *</type>
      <name>osmo_ctx</name>
      <anchorfile>context_8c.html</anchorfile>
      <anchor>a0e806d75c80e71a111b18314b6b919bf</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/core/conv.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>MAX_AE</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga59a8d9c00939e78d198be14587d700b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_get_input_length</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa1382de36811cc10f218b877cad5c2d5</anchor>
      <arglist>(const struct osmo_conv_code *code, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_get_output_length</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga278e64b79e6b589c835a0c401fde3660</anchor>
      <arglist>(const struct osmo_conv_code *code, int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_encode_init</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga729a0ee108fb0f830aef9652acb1f998</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_encode_load_state</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gacd456a6e66cd06364000d83b9d4a9c5f</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const ubit_t *input)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>_conv_encode_do_output</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga9f4a15512d2781731ef7bbd05c834ad7</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, uint8_t out, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode_raw</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga15d88c910f3072194278d42582162872</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const ubit_t *input, ubit_t *output, int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode_flush</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gac54f3af7b08df20b530694ee3a660918</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga928c04825469cc3481be1717d69534d6</anchor>
      <arglist>(const struct osmo_conv_code *code, const ubit_t *input, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_acc</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga609c3f0603a35f2a5c3b55ab4ef30d42</anchor>
      <arglist>(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_init</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8d62497e9411049141f699d67068b1ab</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const struct osmo_conv_code *code, int len, int start_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_reset</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga5b03fc1ff68f02690c1e6536f4a44562</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, int start_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_rewind</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga118b5aec8b6ad0eb45f0cb2bc96525af</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_deinit</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gac5eaa9e63f2f78c65070dfdbd8f8cd88</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_scan</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8c0b5474a256cc21ba605bf2594468bc</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const sbit_t *input, int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_flush</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad6eea080a67fdcecfc6d108d07d37c3c</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const sbit_t *input)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_get_best_end_state</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad2d7bb7224a7362c048f3c147c09c106</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_get_output</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga123033117643f7c2ea610cbc21cfeeb7</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, ubit_t *output, int has_flush, int end_state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8eb8fcdfe0d49890927a6ce7bfc921dc</anchor>
      <arglist>(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/core/conv.h</includes>
    <class kind="struct">vtrellis</class>
    <class kind="struct">vdecoder</class>
    <member kind="define">
      <type>#define</type>
      <name>BIT2NRZ</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a76c065b149bf937cc9eb7566134057dc</anchor>
      <arglist>(REG, N)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NUM_STATES</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a20c9430a355d765fea6d45d0eaa55349</anchor>
      <arglist>(K)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INIT_POINTERS</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>ae1f11f70700b9fc4e4aab8e1b69f8b2e</anchor>
      <arglist>(simd)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a654f220adbb8eaed520587f774ec00d3</anchor>
      <arglist>((visibility(&quot;hidden&quot;)))</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>conv_code_recursive</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>ac70c7000438d44459661ddc872ba21fe</anchor>
      <arglist>(const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>vstate_lshift</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a519bd65bd7fe657aa425cfefff2c659d</anchor>
      <arglist>(unsigned reg, int k, int val)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>bitswap2</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a9978f94dd716b403ef6620a5472b4cb8</anchor>
      <arglist>(unsigned v)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>bitswap3</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>ab7d743a5f9b69cc48febb3e28a589f87</anchor>
      <arglist>(unsigned v)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>bitswap4</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>aedc617bdb47a2e22829a8eefb492396e</anchor>
      <arglist>(unsigned v)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>bitswap5</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>add7a0dbee68a7227d4308f962ab1a09e</anchor>
      <arglist>(unsigned v)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>bitswap6</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a509c042b725c136b692f83d4fa976761</anchor>
      <arglist>(unsigned v)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>bitswap</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a046b4b87cc347221fbaae822e6bb3809</anchor>
      <arglist>(unsigned v, unsigned n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>gen_output</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a6200956aaba08ca5394f171b2a9f65f9</anchor>
      <arglist>(struct vstate *state, int val, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>gen_state_info</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a862f9d99b5020f4158f9e5fc12dc5ce5</anchor>
      <arglist>(uint8_t *val, unsigned reg, int16_t *output, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>gen_recursive_output</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>abae71c041d2d51a32b1cbc6c6f9b251c</anchor>
      <arglist>(struct vstate *state, uint8_t *val, unsigned reg, const struct osmo_conv_code *code, int pos)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>gen_recursive_state_info</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>ab6da1ac7d9a4a9fd4331a8793c280bc9</anchor>
      <arglist>(uint8_t *val, unsigned reg, int16_t *output, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>free_trellis</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a27eb3aa70df7d3774d30ecd5f97a53d4</anchor>
      <arglist>(struct vtrellis *trellis)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>generate_trellis</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a78fe1ea00525a570479816bb6ddb5b7c</anchor>
      <arglist>(struct vdecoder *dec, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_traceback</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a80e9a40c56cd504a3e6283716705f2cb</anchor>
      <arglist>(struct vdecoder *dec, unsigned state, uint8_t *out, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_traceback_rec</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>aa07977cf3617982997a0212b02225b8b</anchor>
      <arglist>(struct vdecoder *dec, unsigned state, uint8_t *out, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>traceback</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>af5802946276d2353d542260d115fec95</anchor>
      <arglist>(struct vdecoder *dec, uint8_t *out, int term, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>vdec_deinit</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>adc93f22e8b2105210040cd5c7800f292</anchor>
      <arglist>(struct vdecoder *dec)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>vdec_init</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a33c960c468ec0d4255374c9747198954</anchor>
      <arglist>(struct vdecoder *dec, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>depuncture</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a45c29d56b7e0f6446ff9f1b383827bce</anchor>
      <arglist>(const int8_t *in, const int *punc, int8_t *out, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>forward_traverse</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>a7bf7f718e7952f1a67f72e8e1c333036</anchor>
      <arglist>(struct vdecoder *dec, const int8_t *seq)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>conv_decode</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>ae0c968e5640cabf20da4ded3b437173a</anchor>
      <arglist>(struct vdecoder *dec, const int8_t *seq, const int *punc, uint8_t *out, int len, int term)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_conv_init</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>acaf1f612de7825b6e3a39acfa272e7f9</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_acc</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga609c3f0603a35f2a5c3b55ab4ef30d42</anchor>
      <arglist>(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static int</type>
      <name>init_complete</name>
      <anchorfile>conv__acc_8c.html</anchorfile>
      <anchor>affedb1db4fd97829fb75619a5ed89ac4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc_generic.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc__generic_8c.html</filename>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>acs_butterfly</name>
      <anchorfile>conv__acc__generic_8c.html</anchorfile>
      <anchor>a56df932a884f61b8d5675ccfe2102564</anchor>
      <arglist>(int state, int num_states, int16_t metric, int16_t *sum, int16_t *new_sum, int16_t *path)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>gen_branch_metrics_n2</name>
      <anchorfile>conv__acc__generic_8c.html</anchorfile>
      <anchor>a3124defebf1991960726693ee11bccc5</anchor>
      <arglist>(int num_states, const int8_t *seq, const int16_t *out, int16_t *metrics)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>gen_branch_metrics_n3</name>
      <anchorfile>conv__acc__generic_8c.html</anchorfile>
      <anchor>aa995f93a1e1118ed4fb0137ef4e4b55e</anchor>
      <arglist>(int num_states, const int8_t *seq, const int16_t *out, int16_t *metrics)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>gen_branch_metrics_n4</name>
      <anchorfile>conv__acc__generic_8c.html</anchorfile>
      <anchor>abf46f74b7b7167567bcc75b22b626958</anchor>
      <arglist>(int num_states, const int8_t *seq, const int16_t *out, int16_t *metrics)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>gen_path_metrics</name>
      <anchorfile>conv__acc__generic_8c.html</anchorfile>
      <anchor>a35ffdff44fe10ac75110d20bf014bea3</anchor>
      <arglist>(int num_states, int16_t *sums, int16_t *metrics, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>conv__acc__generic_8c.html</anchorfile>
      <anchor>a654f220adbb8eaed520587f774ec00d3</anchor>
      <arglist>((visibility(&quot;hidden&quot;)))</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc_neon.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc__neon_8c.html</filename>
    <includes id="conv__acc__neon__impl_8h" name="conv_acc_neon_impl.h" local="no" imported="no">conv_acc_neon_impl.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>NEON_ALIGN</name>
      <anchorfile>conv__acc__neon_8c.html</anchorfile>
      <anchor>a5486ad7225f22912ce136f208fefc237</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>conv__acc__neon_8c.html</anchorfile>
      <anchor>a654f220adbb8eaed520587f774ec00d3</anchor>
      <arglist>((visibility(&quot;hidden&quot;)))</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc_neon_impl.h</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc__neon__impl_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>__always_inline</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a6034e8cd4bcd5bacfd060abd01bbd8a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_BUTTERFLY</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a3fd71b2646da81cd331245dd0a99f3e7</anchor>
      <arglist>(M0, M1, M2, M3, M4)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_DEINTERLEAVE_K5</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a64a643c2264cb3d2037c1b5a92d75029</anchor>
      <arglist>(M0, M1, M2, M3)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_DEINTERLEAVE_K7</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a2c3b91ddfe96dab0e7c38ab4a49cf96b</anchor>
      <arglist>(M0, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_BRANCH_METRIC_N2</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a61dbf015c8f61eb5d7775df881ec7daa</anchor>
      <arglist>(M0, M1, M2, M3, M4, M6, M7)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_BRANCH_METRIC_N4</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a64763794a6958e9f6353ca647c34035e</anchor>
      <arglist>(M0, M1, M2, M3, M4, M5)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_NORMALIZE_K5</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a4ba3dac6cf9e3e6b295aa3cd4f7caea3</anchor>
      <arglist>(M0, M1, M2, M3)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NEON_NORMALIZE_K7</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a4abb399cb2e95aa683d4f3fa4cd62162</anchor>
      <arglist>(M0, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11)</arglist>
    </member>
    <member kind="function">
      <type>__always_inline void</type>
      <name>_neon_metrics_k5_n2</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a29280174a1b24c944278ea50645d8fc0</anchor>
      <arglist>(const int16_t *val, const int16_t *outa, int16_t *sumsa, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function">
      <type>__always_inline void</type>
      <name>_neon_metrics_k5_n4</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>ad117402b21d34712927b710cf3bfaca7</anchor>
      <arglist>(const int16_t *val, const int16_t *outa, int16_t *sumsa, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline void</type>
      <name>_neon_metrics_k7_n2</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>a6599ef80e063b632c50e57f189d8c28b</anchor>
      <arglist>(const int16_t *val, const int16_t *outa, int16_t *sumsa, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline void</type>
      <name>_neon_metrics_k7_n4</name>
      <anchorfile>conv__acc__neon__impl_8h.html</anchorfile>
      <anchor>afb3c3ff371dab9cfef30df2b298aafab</anchor>
      <arglist>(const int16_t *val, const int16_t *outa, int16_t *sumsa, int16_t *paths, int norm)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc_sse.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc__sse_8c.html</filename>
    <includes id="conv__acc__sse__impl_8h" name="conv_acc_sse_impl.h" local="no" imported="no">conv_acc_sse_impl.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>SSE_ALIGN</name>
      <anchorfile>conv__acc__sse_8c.html</anchorfile>
      <anchor>a550663711705ad5014910e124d00ee55</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_BROADCAST</name>
      <anchorfile>conv__acc__sse_8c.html</anchorfile>
      <anchor>ade08e13a2434f4bd4a4146cdb7b84dda</anchor>
      <arglist>(M0)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>conv__acc__sse_8c.html</anchorfile>
      <anchor>a654f220adbb8eaed520587f774ec00d3</anchor>
      <arglist>((visibility(&quot;hidden&quot;)))</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc_sse_avx.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc__sse__avx_8c.html</filename>
    <includes id="conv__acc__sse__impl_8h" name="conv_acc_sse_impl.h" local="no" imported="no">conv_acc_sse_impl.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>SSE_ALIGN</name>
      <anchorfile>conv__acc__sse__avx_8c.html</anchorfile>
      <anchor>a550663711705ad5014910e124d00ee55</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_BROADCAST</name>
      <anchorfile>conv__acc__sse__avx_8c.html</anchorfile>
      <anchor>ade08e13a2434f4bd4a4146cdb7b84dda</anchor>
      <arglist>(M0)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>conv__acc__sse__avx_8c.html</anchorfile>
      <anchor>a654f220adbb8eaed520587f774ec00d3</anchor>
      <arglist>((visibility(&quot;hidden&quot;)))</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv_acc_sse_impl.h</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>conv__acc__sse__impl_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>__always_inline</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a6034e8cd4bcd5bacfd060abd01bbd8a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_BUTTERFLY</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>ab4e031931b03d7b9decbc71c2dbbc80b</anchor>
      <arglist>(M0, M1, M2, M3, M4)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_I8_SHUFFLE_MASK</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a32bc7adf90d8074af148ff6e860290e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_DEINTERLEAVE_K5</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a58edda3346794850db562009f2984a1a</anchor>
      <arglist>(M0, M1, M2, M3)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_DEINTERLEAVE_K7</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>aecdecf201864014e331627daf0d15c4c</anchor>
      <arglist>(M0, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_BRANCH_METRIC_N2</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>ac5e8b6e3204d8654e419417be1285db6</anchor>
      <arglist>(M0, M1, M2, M3, M4, M6, M7)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_BRANCH_METRIC_N4</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a369ef2013e844532b4d1989f29d82aa3</anchor>
      <arglist>(M0, M1, M2, M3, M4, M5)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_MINPOS</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>ad7c53e0ea13f56dafb49015aa6afde42</anchor>
      <arglist>(M0, M1)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_NORMALIZE_K5</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a6dc79ea42923356306d5ce8c4019d3b8</anchor>
      <arglist>(M0, M1, M2, M3)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SSE_NORMALIZE_K7</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a6e3fa7c5ff1e4d3e244cbdf0a3bffa4b</anchor>
      <arglist>(M0, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline void</type>
      <name>_sse_metrics_k5_n2</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>ace021df37858dc9c7e2ffeeb5363dd16</anchor>
      <arglist>(const int16_t *val, const int16_t *out, int16_t *sums, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline void</type>
      <name>_sse_metrics_k5_n4</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>aebbd89119405132383c7f54f818f1209</anchor>
      <arglist>(const int16_t *val, const int16_t *out, int16_t *sums, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline void</type>
      <name>_sse_metrics_k7_n2</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>ae9ec7cd678c977a8289320f3d4643415</anchor>
      <arglist>(const int16_t *val, const int16_t *out, int16_t *sums, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static __always_inline void</type>
      <name>_sse_metrics_k7_n4</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>a82595fc4ef1bacd8b4a74d8f59277e0c</anchor>
      <arglist>(const int16_t *val, const int16_t *out, int16_t *sums, int16_t *paths, int norm)</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>sse41_supported</name>
      <anchorfile>conv__acc__sse__impl_8h.html</anchorfile>
      <anchor>ab87cb89f0af5dcfad8c409b0367997e5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>counter.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>counter_8c.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="counter_8h" name="counter.h" local="no" imported="no">osmocom/core/counter.h</includes>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a2e1feef1612496f3d2631e54745ad03a</anchor>
      <arglist>(counters)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_counter *</type>
      <name>osmo_counter_alloc</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a49d37fb23ed16657a82b1bb959078759</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_counter_free</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a476d1531dc9583f72914ae3ad795e7f6</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_counters_for_each</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a13522cfb91c1dd87cfa9d9b246676666</anchor>
      <arglist>(int(*handle_counter)(struct osmo_counter *, void *), void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_counters_count</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a770b2893a968a3348eec9fdece28dfdc</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_counter *</type>
      <name>osmo_counter_get_by_name</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a097b54f74643595cace122522a46894a</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_counter_difference</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>a53ab8cd2ac269f632b30043674809564</anchor>
      <arglist>(struct osmo_counter *ctr)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_ctr_ctx</name>
      <anchorfile>counter_8c.html</anchorfile>
      <anchor>aa9739e8f51a8d3df4d85c55fab977277</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc16.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>crc16_8c.html</filename>
    <includes id="crc16_8h" name="crc16.h" local="no" imported="no">osmocom/core/crc16.h</includes>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga58cd4fba87bbaf0f343bd33180eebe42</anchor>
      <arglist>(uint16_t crc, uint8_t const *buffer, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16_ccitt</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaad60da91cb9972f08402e66fe456faa3</anchor>
      <arglist>(uint16_t crc, uint8_t const *buffer, size_t len)</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga539c9a3a9def4b974c3957a9d843fc03</anchor>
      <arglist>[256]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_ccitt_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gabc80ae8a51f5ed975c980dee63129818</anchor>
      <arglist>[256]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc16gen.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>crc16gen_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="crc16gen_8h" name="crc16gen.h" local="no" imported="no">osmocom/core/crc16gen.h</includes>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga5f2be129743f4ef86a0dc8254e7ef2db</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc16gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga9a00e7f03b13fafc300c472041232a13</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc16gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga78c47159065aced37cb21d78dc5f7a66</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc32gen.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>crc32gen_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="crc32gen_8h" name="crc32gen.h" local="no" imported="no">osmocom/core/crc32gen.h</includes>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_crc32gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga38fd8d69d0e56e7ac9c424d9c1201da3</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc32gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gacd9e567dca7fe9704c4a3091fb73f731</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc32gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gafd51fe33e5139ac2ac74b235864bc5f6</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc64gen.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>crc64gen_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="crc64gen_8h" name="crc64gen.h" local="no" imported="no">osmocom/core/crc64gen.h</includes>
    <member kind="function">
      <type>uint64_t</type>
      <name>osmo_crc64gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaea21afc395bb6817b77ff5bd7a66e1b6</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc64gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gae8e3f4375b32508b040ce49e948b06d5</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc64gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaa78449595b3ce3ff202d3f898a85f995</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc8gen.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>crc8gen_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="crc8gen_8h" name="crc8gen.h" local="no" imported="no">osmocom/core/crc8gen.h</includes>
    <member kind="function">
      <type>uint8_t</type>
      <name>osmo_crc8gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga1549c35fe5c50ec456a7bcbe65573e62</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc8gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga66f9c6afefc4dfe9baacdaf75ac1d95a</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc8gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gac88fe09d8beb2a70f1ec43f87920ee73</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>exec.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>exec_8c.html</filename>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="exec_8h" name="exec.h" local="no" imported="no">osmocom/core/exec.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>_GNU_SOURCE</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>a369266c24eacffb87046522897a570d5</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>str_in_list</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>a0e612d16e78285a46edbd00191932ac9</anchor>
      <arglist>(const char **list, const char *key)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_environment_filter</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>ab1efc7ed7bdb411bb019c6aefb2a0dcb</anchor>
      <arglist>(char **out, size_t out_len, char **in, const char **whitelist)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_environment_append</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>a71687348f645b14678c4c7f5d0a6e805</anchor>
      <arglist>(char **out, size_t out_len, char **in)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_close_all_fds_above</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>a74007aea8c9beff8570913b483b856c6</anchor>
      <arglist>(int last_fd_to_keep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_system_nowait2</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>a75cce23ee8e0c96dcec47ff5d1465373</anchor>
      <arglist>(const char *command, const char **env_whitelist, char **addl_env, const char *user)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_system_nowait</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>a680be9aef4deaf60a5a9d47677a6feca</anchor>
      <arglist>(const char *command, const char **env_whitelist, char **addl_env)</arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>osmo_environment_whitelist</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>ab522083bcb56160c2fc73abeac9ca6a3</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>char **</type>
      <name>environ</name>
      <anchorfile>exec_8c.html</anchorfile>
      <anchor>aa006daaf11f1e2e45a6ababaf463212b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>fsm.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>fsm_8c.html</filename>
    <includes id="fsm_8h" name="fsm.h" local="no" imported="no">osmocom/core/fsm.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <member kind="function">
      <type></type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga899732f691814df3bf90f25bc7ff5a0b</anchor>
      <arglist>(osmo_g_fsms)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>fsm_free_or_steal</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga030dcf02919dfae0a95a13626f66f98d</anchor>
      <arglist>(void *talloc_object)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_log_addr</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7dacf1bf0ada0d3dc6d2640d24b4aa59</anchor>
      <arglist>(bool log_addr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_log_timeouts</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9f3dad4e32e230e416a8c93401676d42</anchor>
      <arglist>(bool log_timeouts)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_term_safely</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7ae199b946d722bc789b1c59f7c3aa15</anchor>
      <arglist>(bool term_safely)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_set_dealloc_ctx</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf031d280ac7d4fc8ac17e8560e5370a8</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fsm_defer_free</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4e180dcf9205a194dafffd7d3afa928a</anchor>
      <arglist>(void *talloc_object)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm *</type>
      <name>osmo_fsm_find_by_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1e43eb41f84e07b9606c9cdcba87c6c2</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_find_by_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gafce8ab2dfb4f98c6ecd2eb064aa48746</anchor>
      <arglist>(const struct osmo_fsm *fsm, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_find_by_id</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf4d7f891b0a2110daa84136b5ea8f540</anchor>
      <arglist>(const struct osmo_fsm *fsm, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_register</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga444610bbb35d19b21918e61ec4431fa7</anchor>
      <arglist>(struct osmo_fsm *fsm)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_unregister</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga42d9cd0b40e6ffc26c8285861776d8e0</anchor>
      <arglist>(struct osmo_fsm *fsm)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>fsm_tmr_cb</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gadd6cf7d6e42ca941baaf5840a07922c8</anchor>
      <arglist>(void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gad28f180033fb18442307fed1d27c3c48</anchor>
      <arglist>(struct osmo_fsm_inst *fi, const char *id)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>update_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1380b8cda91ee170848d1e9646135b93</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id_f</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4373cf363f849faed4fc9885c55a1d22</anchor>
      <arglist>(struct osmo_fsm_inst *fi, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id_f_sanitize</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0b17e0f3c1b06fff03a0277237145d28</anchor>
      <arglist>(struct osmo_fsm_inst *fi, char replace_with, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_alloc</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gab86e5e11480147ed8e39d9dd2a6884e5</anchor>
      <arglist>(struct osmo_fsm *fsm, void *ctx, void *priv, int log_level, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_alloc_child</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7fd84a05fb6fd849d46219730202e5d3</anchor>
      <arglist>(struct osmo_fsm *fsm, struct osmo_fsm_inst *parent, uint32_t parent_term_event)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_unlink_parent</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7f88d5cf42077f32bc5cf667ca310d9d</anchor>
      <arglist>(struct osmo_fsm_inst *fi, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_change_parent</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4411b21a211cd81f2e858a146f2c4cca</anchor>
      <arglist>(struct osmo_fsm_inst *fi, struct osmo_fsm_inst *new_parent, uint32_t new_parent_term_event)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_free</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4cd3ac472cde5e97f156d398863e2081</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_event_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga242186790266b18531bb9fde93b2487d</anchor>
      <arglist>(const struct osmo_fsm *fsm, uint32_t event)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_inst_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1279f48c166034158dd79d0bb25664b7</anchor>
      <arglist>(const struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_state_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gae7114ae434235be6e42db8b8231054a8</anchor>
      <arglist>(const struct osmo_fsm *fsm, uint32_t state)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga96fb76c74cd793b6513b33f4041540a3</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, bool keep_timer, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7608be014cba6f4310e880481b309a94</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0a7ae7d6b80ea6e0123a78a850474f02</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaa8eef574f84a42c60ce12646b0618e0e</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_or_start_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga159227b2c4b5ee4bb668e3460adf7c47</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_or_start_timer_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga423b10042103cfa1e0ec3713e3d477a8</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_dispatch</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga523a1a8428c37cb1d30fa1c3c11e6db1</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t event, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_term</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9b46a56e04ac98b7f20cae167e952a12</anchor>
      <arglist>(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_term_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga2d5fc607d8297c048af8ae7f3e9a6ac8</anchor>
      <arglist>(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_broadcast_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4ec2d59ba8fa1effca075762cde6156b</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t event, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>fsm_log_addr</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga90bb7135bd876e3de07ecb1c8d74047b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>fsm_log_timeouts</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gab4ec2d8fbd00ee01c1483e8693f1d476</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>fsm_term_safely_enabled</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga821e471c0c64e832f6f5d8ab621676ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fsm_inst *</type>
      <name>root_fi</name>
      <anchorfile>fsm_8c.html</anchorfile>
      <anchor>ac87816006076bba6d6da5fd064c802eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>depth</name>
      <anchorfile>fsm_8c.html</anchorfile>
      <anchor>a5081a26baa914156df8541b03d09492e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>collect_ctx</name>
      <anchorfile>fsm_8c.html</anchorfile>
      <anchor>afd962301701a4aaba800ea611d5161e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>fsm_dealloc_ctx</name>
      <anchorfile>fsm_8c.html</anchorfile>
      <anchor>a5f36d9c24f565ba616d29d9603c285fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct @35</type>
      <name>fsm_term_safely</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga27502d517e5030ea4d091947186e55ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_fsm_term_cause_names</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4c11df3f81765eb1ee987d95d3f0d07e</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>gsmtap_util.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>gsmtap__util_8c.html</filename>
    <includes id="gsmtap__util_8h" name="gsmtap_util.h" local="no" imported="no">osmocom/core/gsmtap_util.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="gsmtap_8h" name="gsmtap.h" local="no" imported="no">osmocom/core/gsmtap.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="byteswap_8h" name="byteswap.h" local="no" imported="no">osmocom/core/byteswap.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <class kind="struct">gsmtap_inst</class>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_inst_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gad201f805caa17a143201ecce09a21208</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_inst_fd2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gade1327e89e4b4fe0e08bf9947ec99a04</anchor>
      <arglist>(const struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>chantype_rsl2gsmtap2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga2fa99893aabc3b82458803a914fee39a</anchor>
      <arglist>(uint8_t rsl_chantype, uint8_t link_id, bool user_plane)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>chantype_rsl2gsmtap</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga14574d2d831766b848e5ff93b89e8338</anchor>
      <arglist>(uint8_t rsl_chantype, uint8_t link_id)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>chantype_gsmtap2rsl</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga3567072c254391b92eabf48ed71f9aac</anchor>
      <arglist>(uint8_t gsmtap_chantype, uint8_t *rsl_chantype, uint8_t *link_id)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gsmtap_makemsg_ex</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4de6489fab3bff7590e53dd9859e3c44</anchor>
      <arglist>(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gsmtap_makemsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga03a4ac0d6f7a80807415476fdc804da6</anchor>
      <arglist>(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_gsm_channel_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4f9601754c2db0434194ebdf0742ccb9</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_type_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac6ab8513b1e0e8505b89847a4f9a4a09</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>isdnhdlc.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>isdnhdlc_8c.html</filename>
    <includes id="crc16_8h" name="crc16.h" local="no" imported="no">osmocom/core/crc16.h</includes>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="isdnhdlc_8h" name="isdnhdlc.h" local="no" imported="no">osmocom/core/isdnhdlc.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>crc_ccitt_byte</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>abff2b9b7c268ac7dbf2b4e665baee472</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>handle_fast_flag</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a9e596f205642177fa0a0b1f0b83cb5e8</anchor>
      <arglist>(h)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>handle_abort</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>ac1ef7d0a89ea93ae75db3497653c59b3</anchor>
      <arglist>(h)</arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_FAST_IDLE</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a458e651af6690959efa2afb96be7d609af2e8d8b742ed93f1ccae99392fb103e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_GET_FLAG_B0</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a458e651af6690959efa2afb96be7d609a5037b68183c53025dfbb5abe755549d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_GETFLAG_B1A6</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a458e651af6690959efa2afb96be7d609a49d08d7b9919b1e3162d80d7ed8c84da</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_GETFLAG_B7</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a458e651af6690959efa2afb96be7d609a573bef12dcd5d1fe05660391bcbebc33</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_GET_DATA</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a458e651af6690959efa2afb96be7d609ac8d91e0fd825206d0021593c7a0e963b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_FAST_FLAG</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a458e651af6690959efa2afb96be7d609a1565c33476d4685025df6ece33184a3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_DATA</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a8492bb354a5f35d47c98e39a460f6042</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_CRC1</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562afc8b49708b57163b2d06a51f4f8bb85d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_FAST_FLAG</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562ac7e49f9bff412da2659ac318f0a75370</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_FIRST_FLAG</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a231e21b9780b3b3ee53ed83b6701ec96</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_CRC2</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562ab359ba643b879cbeac272ddc240ae9f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_CLOSING_FLAG</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a7191b7ca73287ddf4b1f7b6793636da8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_IDLE1</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562abae4fa6ddd9876da09d8d9c48f429e8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SEND_FAST_IDLE</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a1a3a6c11b8c5dd59c9a46d5caed4835c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SENDFLAG_B0</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a1ca2046e201454b8bc2e38c2d7b54c17</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SENDFLAG_B1A6</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a2d3f45a4ebd13d409792d0ccf96d1c78</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SENDFLAG_B7</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562afb1c2f38d91effdf7dc54e559b5249fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>STOPPED</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562a948b2aee15f52b421fa4770c47bcfe8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>HDLC_SENDFLAG_ONE</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1f9aebf1de3ebbf4283a4dcf73308562ad2ca1b245ee93f1750ca27920d636b16</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_isdnhdlc_rcv_init</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a98822a5ed1411cc5e7261f1e1e991152</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, uint32_t features)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_isdnhdlc_out_init</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>abe1a5cfbb77cc0324b1ac506cbc8967d</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, uint32_t features)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>check_frame</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a658be0139a8c3afd3f06cba38127b136</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_isdnhdlc_decode</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a7b51c27274ca2cccf23b4e868c7b6710</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, const uint8_t *src, int slen, int *count, uint8_t *dst, int dsize)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_isdnhdlc_encode</name>
      <anchorfile>isdnhdlc_8c.html</anchorfile>
      <anchor>a1b8eb0afa747804742eab4c1d59494c2</anchor>
      <arglist>(struct osmo_isdnhdlc_vars *hdlc, const uint8_t *src, uint16_t slen, int *count, uint8_t *dst, int dsize)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>it_q.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>it__q_8c.html</filename>
  </compound>
  <compound kind="file">
    <name>logging.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>logging_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging__internal_8h" name="logging_internal.h" local="no" imported="no">osmocom/core/logging_internal.h</includes>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="thread_8h" name="thread.h" local="no" imported="no">osmocom/core/thread.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="write__queue_8h" name="write_queue.h" local="no" imported="no">osmocom/core/write_queue.h</includes>
    <includes id="gsmtap__util_8h" name="gsmtap_util.h" local="no" imported="no">osmocom/core/gsmtap_util.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>TRACE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9b44d241a9984069d3c9de002b6c149c</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TRACE_ENABLED</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa753ae2ccad22fb27615272c6b2b04e0</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INT2IDX</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1307d6b14e5c102d9da8abaeea1bfacf</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>osmo_static_assert</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabbe638cbc231abd48396145cbd3b26aa</anchor>
      <arglist>(_LOG_CTX_COUNT&lt;=ARRAY_SIZE(((struct log_context *) NULL) -&gt;ctx), enum_logging_ctx_items_fit_in_struct_log_context)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>osmo_static_assert</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf1f7a734ffb9978da07d56af7d319760</anchor>
      <arglist>(_LOG_FLT_COUNT&lt;=ARRAY_SIZE(((struct log_target *) NULL) -&gt;filter_data), enum_logging_filters_fit_in_log_target_filter_data)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>osmo_static_assert</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaefa358df727fb5f7e49d69a6c4e88861</anchor>
      <arglist>(_LOG_FLT_COUNT&lt;=8 *sizeof(((struct log_target *) NULL) -&gt;filter_map), enum_logging_filters_fit_in_log_target_filter_map)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8244b3910e42eb24294f53d52ce5e48d</anchor>
      <arglist>(osmo_log_target_list)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>log_cache_update_all</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3e9c5ea0653cc0df9d2d4ad1f1736a6e</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_cache_update</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaccccc6015ad7dac48806a1911c7bfac6</anchor>
      <arglist>(int mapped_subsys, uint8_t enabled, uint8_t level)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>log_cache_check</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga308e775a3d9188a9d9f8b814073c503f</anchor>
      <arglist>(int mapped_subsys, int level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_enable_multithread</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacf9953bad5917dc2e72507fbf4308df6</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_tgt_mutex_lock_impl</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1f4bbcd8f332fd3c10618257fd381aae</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_tgt_mutex_unlock_impl</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga18a5be7b0f60ed441b102f3ae81204ee</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>assert_loginfo</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3277bfadd5b4e5bc609d85a1c53b5e0</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>subsys_lib2index</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf15988bfcaa17f275256dc063a46c737</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_parse_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3b291716f99d275bc17aaba56668fa54</anchor>
      <arglist>(const char *lvl)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_level_str</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga72d0cddff0823055cf7dbf195f96bba1</anchor>
      <arglist>(unsigned int lvl)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_parse_category</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacacb1583518cb0b46d50cf5e98200f54</anchor>
      <arglist>(const char *category)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_parse_category_mask</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4cc6ca4580aff12753717030c1e0ef23</anchor>
      <arglist>(struct log_target *target, const char *_mask)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga04683f168464a0f680e79baf747560b1</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>level_color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac42c4f25e487c6ca8ff16d511312819b</anchor>
      <arglist>(int level)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_category_name</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8114da96a88591aa817c38f98c119be1</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>const_basename</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1cf3db5ef2f4255d613011626cfc0770</anchor>
      <arglist>(const char *path)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_output_buf</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad0f490cca66aa8e7c414ece6a0dc6b5f</anchor>
      <arglist>(char *buf, int buf_len, struct log_target *target, unsigned int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>map_subsys</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9f015671f0d19116a8240b28742a223e</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>should_log_to_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga995623e2b3946ef56dd69487b0fda241</anchor>
      <arglist>(struct log_target *tar, int subsys, int level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_vlogp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga607a4b06b2123605f3a3243307aeb7a2</anchor>
      <arglist>(int subsys, int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>logp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab324ed3d4a2cf52b7221f64f6e24ffa5</anchor>
      <arglist>(int subsys, const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>logp2</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae7c013af52c801dbfe79b8a8a3801c5e</anchor>
      <arglist>(int subsys, unsigned int level, const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void void</type>
      <name>logp_stub</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac80553bb76fe67acb9834a128700c12d</anchor>
      <arglist>(const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_add_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaef366d8dcc3243892af1a86825b332c4</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_del_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaef66f7f410135e85ab7d640969059e52</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_reset_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf69d0014231702905b70af36ba2161d6</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4e6b63f4ef308f052b63a439e6a49033</anchor>
      <arglist>(uint8_t ctx_nr, void *value)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>log_get_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab10cc1265ebf8f51f9b65dc35c25b004</anchor>
      <arglist>(const struct log_context *ctx, uint8_t ctx_nr)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>log_get_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4f0d97c8156921df3f2a8c063cd378e0</anchor>
      <arglist>(const struct log_target *target, int log_filter_index)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_all_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga472e144e4786d4622383e8040ee44d91</anchor>
      <arglist>(struct log_target *target, int all)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga189d79d3a2aa169880a0645980cd6508</anchor>
      <arglist>(struct log_target *target, int log_filter_index, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>log_get_filter_data</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9fe4e643b7ff7ad82616f1b89d20dd44</anchor>
      <arglist>(const struct log_target *target, int log_filter_index)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_filter_data</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga018b6fc50500ca6c014a8669973290a6</anchor>
      <arglist>(struct log_target *target, int log_filter_index, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_use_color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga30d608c01397ebfdf5ea3751a2d77477</anchor>
      <arglist>(struct log_target *target, int use_color)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_timestamp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaee1b4940beeafc3be87dade21fca15cd</anchor>
      <arglist>(struct log_target *target, int print_timestamp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_extended_timestamp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa7485ba761bb91b3b1551d0532c10255</anchor>
      <arglist>(struct log_target *target, int print_timestamp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_tid</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga322b5ead8114170321047a0a6cf62bdb</anchor>
      <arglist>(struct log_target *target, int print_tid)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3ba3b5fcc019f7359704a7a6ee212ed</anchor>
      <arglist>(struct log_target *target, int print_filename)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename2</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga878f19493806866c6dbf2d7741aaa9e6</anchor>
      <arglist>(struct log_target *target, enum log_filename_type lft)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename_pos</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4f59f85a6eeef26a90e9909e0f45419e</anchor>
      <arglist>(struct log_target *target, enum log_filename_pos pos)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_category</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1f27605b22a68418f3b1304cb347b3dd</anchor>
      <arglist>(struct log_target *target, int print_category)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_category_hex</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga37155c559dfa73b1a2d83746116326fa</anchor>
      <arglist>(struct log_target *target, int print_category_hex)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga46786df78108657560700c8d99f9a542</anchor>
      <arglist>(struct log_target *target, int print_level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_log_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga608bb905a1d46b3f30c91ab2b5c791cb</anchor>
      <arglist>(struct log_target *target, int log_level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_category_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaac26114e404387c4ebcc5b3cee8bddba</anchor>
      <arglist>(struct log_target *target, int category, int enable, int level)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9f2aa41f93d7c8e659412640e9b03ea9</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_find</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacd942dd5269a031f3f94bfdb90b9dd22</anchor>
      <arglist>(enum log_target_type type, const char *fname)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_destroy</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6bbfb2ce2a9ba3dea3b3c1204485b719</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_targets_reopen</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3a0a25f7c25582eb297470a040bcaf0</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_cache_enable</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae486c7d4d9df85a56c39c357d5941d6b</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_init</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabf0d1770253db45f43db9344e950a724</anchor>
      <arglist>(const struct log_info *inf, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_fini</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab764c12d013acf2af98b24058a4bb894</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_check_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6fbd4bc9164c5f5460b1ccbc1007b890</anchor>
      <arglist>(int subsys, unsigned int level)</arglist>
    </member>
    <member kind="variable">
      <type>struct log_info *</type>
      <name>osmo_log_info</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga81945895aa832524afb8edaa9eb366d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct log_context</type>
      <name>log_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadec07e5cb20ac598d5b8dd1f70eefc30</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_log_ctx</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga637e5fb0ff764b323acb7caef1793dea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>__thread struct log_thread_state</type>
      <name>log_thread_state</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0ab25e0670db8f46e3bc1e1a4f68bf8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static volatile uint8_t *</type>
      <name>log_level_lookup_cache</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga2df60cc520313b0109e5cf43cc0d1dc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static pthread_mutex_t</type>
      <name>osmo_log_tgt_mutex</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadd5b9ce5d49453637546dbbfe13ed746</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>osmo_log_tgt_mutex_on</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf102d22306d0901165b93e74d5a489a5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>loglevel_strs</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf6826ad1edc63df058816b245f336872</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const struct log_info_cat</type>
      <name>internal_cat</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac981d57bb4705996e634c7b1b3bd6a10</anchor>
      <arglist>[OSMO_NUM_DLIB]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const struct value_string</type>
      <name>level_colors</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga7d0f79f30da8c4cdf389d1b50ec2f652</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging_emscripten.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>logging__emscripten_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="logging__internal_8h" name="logging_internal.h" local="no" imported="no">osmocom/core/logging_internal.h</includes>
    <member kind="function">
      <type></type>
      <name>EM_JS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0ef44fff6c55a3ef49b8e4803442ca2f</anchor>
      <arglist>(void, on_log_wrapper,(const char *subsys, int level, const char *msg), { return on_log(subsys, level, msg);})</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_emscripten_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcaf3c351c24ada8e243e9943d9d9a1e</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_emscripten</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabe28d07ee9c198435cef558e151af482</anchor>
      <arglist>(void)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging_file.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>logging__file_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="write__queue_8h" name="write_queue.h" local="no" imported="no">osmocom/core/write_queue.h</includes>
    <includes id="osmo__io_8h" name="osmo_io.h" local="no" imported="no">osmocom/core/osmo_io.h</includes>
    <includes id="logging__internal_8h" name="logging_internal.h" local="no" imported="no">osmocom/core/logging_internal.h</includes>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_reopen</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3147a2bfbed44aef8b0789ae0d3b8acd</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_set_nonblock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga47da2593c68c4d97fe3d36f918189f92</anchor>
      <arglist>(struct log_target *target, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_get_nonblock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcb3a96a6a8ffd6e74faa0945e451149</anchor>
      <arglist>(const struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_file_destroy</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae6561c1db02d391bc163096ed9e63444</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_file_output_stream</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac58b88e7430d4320daeb988f582a0492</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_file_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae88920d8c69c10587f87a8890a7d50ea</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_log_target_file_setup_talloc_pool</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga2f7a419025b55cefb2af2e83a93569a9</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_switch_to_stream</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae324d978485dd51ac8f0a1057418a249</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_log_target_file_setup_iofd</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga50482bc004e2dbe089143d4c947a724a</anchor>
      <arglist>(struct log_target *target, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_switch_to_wqueue</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga117469c362a121ecbdd997a1c0612c6c</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_file</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1521542d251917511aec7ae3feac5b05</anchor>
      <arglist>(const char *fname)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_stderr</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga08b710a69267b50b7c26e2c7e87e5647</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_io_ops</type>
      <name>log_target_file_io_ops</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad0aa29bd27f5abfd48785af8de53fea5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging_gsmtap.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>logging__gsmtap_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="gsmtap_8h" name="gsmtap.h" local="no" imported="no">osmocom/core/gsmtap.h</includes>
    <includes id="gsmtap__util_8h" name="gsmtap_util.h" local="no" imported="no">osmocom/core/gsmtap_util.h</includes>
    <includes id="logging__internal_8h" name="logging_internal.h" local="no" imported="no">osmocom/core/logging_internal.h</includes>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="byteswap_8h" name="byteswap.h" local="no" imported="no">osmocom/core/byteswap.h</includes>
    <includes id="thread_8h" name="thread.h" local="no" imported="no">osmocom/core/thread.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_MSG_MAX_SIZE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8f9278465e1724f377a119a45b07f2c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_gsmtap_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcb5d64707df94b5f4aa8671936a335e</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_gsmtap</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4efed74fd274a942527f6c311ff5d4e9</anchor>
      <arglist>(const char *host, uint16_t port, const char *ident, bool ofd_wq_mode, bool add_sink)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread uint32_t</type>
      <name>logging_gsmtap_tid</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga717d59129ea36f1cff741576ca246a46</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging_syslog.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>logging__syslog_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>logp2syslog_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8e2436af7e6195055c738e37b1016bb9</anchor>
      <arglist>(unsigned int level)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_syslog_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga97b43f9b8359fe37e51e7876884c2d43</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_syslog</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaeee882e225104fac94d0b8daa048e303</anchor>
      <arglist>(const char *ident, int option, int facility)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>logging_systemd.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>logging__systemd_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>SD_JOURNAL_SUPPRESS_LOCATION</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae2434162e872ec8189ca11e53257fad6</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>logp2syslog_level</name>
      <anchorfile>logging__systemd_8c.html</anchorfile>
      <anchor>ga8e2436af7e6195055c738e37b1016bb9</anchor>
      <arglist>(unsigned int level)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_systemd_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga27ea724905c07af4eda1dac1ef43824a</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_systemd_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga422e471f30e790e893b9b9ed4a281fff</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_systemd</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8ca192ef2740d2877292f2bec39a54cb</anchor>
      <arglist>(bool raw)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_systemd_set_raw</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafe72f96e070180cbbf2073a9806c9259</anchor>
      <arglist>(struct log_target *target, bool raw)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>loggingrb.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>loggingrb_8c.html</filename>
    <includes id="strrb_8h" name="strrb.h" local="no" imported="no">osmocom/core/strrb.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="loggingrb_8h" name="loggingrb.h" local="no" imported="no">osmocom/core/loggingrb.h</includes>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_rb_output</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>ga5cdd3e33d00d006eb4595e35de7460e0</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>log_target_rb_used_size</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gac9a845e64d56b9a0304adcdc20a8edad</anchor>
      <arglist>(struct log_target const *target)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>log_target_rb_avail_size</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>ga426cd3cb62e9f6c29ffa34624f131a7e</anchor>
      <arglist>(struct log_target const *target)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_target_rb_get</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gac5c43e52e67ec342d2a5542046219fc3</anchor>
      <arglist>(struct log_target const *target, size_t logindex)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_rb</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gabb32bbd39408f38bb623c92485feecbd</anchor>
      <arglist>(size_t size)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>macaddr.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>macaddr_8c.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_macaddr_parse</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6b5f705acbbc2d4cb226b44af6da4c11</anchor>
      <arglist>(uint8_t *out, const char *in)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_get_macaddr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga570ff719ef3bd624bffa17e1ddba0f78</anchor>
      <arglist>(uint8_t *mac_out, const char *dev_name)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>mnl.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>mnl_8c.html</filename>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="mnl_8h" name="mnl.h" local="no" imported="no">osmocom/core/mnl.h</includes>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_mnl_fd_cb</name>
      <anchorfile>mnl_8c.html</anchorfile>
      <anchor>a7f7abd51687d4faee8f71b6f5c5b5d7e</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_mnl *</type>
      <name>osmo_mnl_init</name>
      <anchorfile>mnl_8c.html</anchorfile>
      <anchor>afa1cb4b93b6a178b9f1152f7b1beec8e</anchor>
      <arglist>(void *ctx, int bus, unsigned int groups, mnl_cb_t mnl_cb, void *priv)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_mnl_destroy</name>
      <anchorfile>mnl_8c.html</anchorfile>
      <anchor>aa9759151d4d3fe75178a4e7786acef6d</anchor>
      <arglist>(struct osmo_mnl *omnl)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>msgb.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>msgb_8c.html</filename>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_alloc_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gabfa7361c6d26ec2726525828813b8081</anchor>
      <arglist>(const void *ctx, uint16_t size, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_alloc</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga25906d049cbad1bf2d5a785319268ea8</anchor>
      <arglist>(uint16_t size, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_free</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae48b55f6f4529aafb069eaa3fa1998f0</anchor>
      <arglist>(struct msgb *m)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_enqueue</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacb8dd9493eb7fc266ce159e3325c6504</anchor>
      <arglist>(struct llist_head *queue, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_dequeue</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gadf56eab1dbbb193b132c3dc6ba4222bc</anchor>
      <arglist>(struct llist_head *queue)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_reset</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5676421c50ed5d0049b53605fc5397ce</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t *</type>
      <name>msgb_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9bed2fe8aedfa7619eda155a4afbaf9a</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_msgb_eq</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga7c21cb1a25cffb5ad4f0e64af45db040</anchor>
      <arglist>(const char *file, size_t line, const char *func, uint8_t level, const struct msgb *msg, const uint8_t *data, size_t len, bool print)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>msgb_length</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga036077cd924b90a798cb3b6c5541a492</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_set_talloc_ctx</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1d57bb92a849857deb6871446d3230da</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>msgb_talloc_ctx_init</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga66fd1ee6b6667bf707fcef99ee2fb7db</anchor>
      <arglist>(void *root_ctx, unsigned int pool_size)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_resize_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gab30cebe53b874324e73e3cb56aaba015</anchor>
      <arglist>(const void *ctx, const struct msgb *msg, uint16_t new_len, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_resize</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae522e97ead0bf5a6331399a4ec91d58b</anchor>
      <arglist>(const struct msgb *msg, uint16_t new_len, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga3ff33cbd8eccd14d4c7766b8a2afeb51</anchor>
      <arglist>(const void *ctx, const struct msgb *msg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5f79dffec24b16b92bcdb4cd19a8ee90</anchor>
      <arglist>(const struct msgb *msg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>msgb_resize_area</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gab1ffdec5c9aa14709b9b10b0c3ad3612</anchor>
      <arglist>(struct msgb *msg, uint8_t *area, int old_size, int new_size)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>msgb_hexdump_buf</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8f7a6483386bf042668201f9e18b5a05</anchor>
      <arglist>(char *buf, size_t buf_len, const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>msgb_hexdump</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9a703fb35c8eafd88c6d0d20aef465ac</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>msgb_hexdump_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga529723f7c2ae10e4ebcf05f2890e2999</anchor>
      <arglist>(const void *ctx, const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>msgb_printf</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8b7ed585b26c2239b7f7e702a3daf29f</anchor>
      <arglist>(struct msgb *msgb, const char *format,...)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_msgb_ctx</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga72b7917a2ec7fb2120f31cab8d749218</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>msgfile.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>msgfile_8c.html</filename>
    <includes id="msgfile_8h" name="msgfile.h" local="no" imported="no">osmocom/core/msgfile.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>_WITH_GETLINE</name>
      <anchorfile>msgfile_8c.html</anchorfile>
      <anchor>af0f7b0f33fcbbfbf92bf1cf729b2f23c</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct osmo_config_entry *</type>
      <name>alloc_entry</name>
      <anchorfile>msgfile_8c.html</anchorfile>
      <anchor>a48ad4d6a44a7c97f67379b1472745535</anchor>
      <arglist>(struct osmo_config_list *entries, const char *mcc, const char *mnc, const char *option, const char *text)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct osmo_config_list *</type>
      <name>alloc_entries</name>
      <anchorfile>msgfile_8c.html</anchorfile>
      <anchor>a8c50eedf1ddacea2debd0c8f92b40860</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>handle_line</name>
      <anchorfile>msgfile_8c.html</anchorfile>
      <anchor>a00d6e2267c4785f1a12b9ee94941d6a9</anchor>
      <arglist>(struct osmo_config_list *entries, char *line)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_config_list *</type>
      <name>osmo_config_list_parse</name>
      <anchorfile>msgfile_8c.html</anchorfile>
      <anchor>a40305f9090e1954fcf45028a49457105</anchor>
      <arglist>(void *ctx, const char *filename)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>netdev.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>netdev_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="netns_8h" name="netns.h" local="no" imported="no">osmocom/core/netns.h</includes>
    <includes id="netdev_8h" name="netdev.h" local="no" imported="no">osmocom/core/netdev.h</includes>
    <class kind="struct">netdev_netns_ctx</class>
    <class kind="struct">osmo_netdev</class>
    <member kind="define">
      <type>#define</type>
      <name>IFINDEX_UNUSED</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga4ada97f372aa49d80609df05f03cf22d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGNETDEV</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gab5dc692ce52be4e4fceac01d7d7f37a7</anchor>
      <arglist>(netdev, lvl, fmt, args ...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETDEV_NETNS_ENTER</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga969600e117b60bbf37373c285429b6b9</anchor>
      <arglist>(netdev, switch_state, str_prefix)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETDEV_NETNS_EXIT</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga22138414127e915e3de3588e11ded38c</anchor>
      <arglist>(netdev, switch_state, str_prefix)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct netdev_netns_ctx *</type>
      <name>netdev_netns_ctx_alloc</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gae3898d5fb30e050bf7af51c3d03f9d84</anchor>
      <arglist>(void *ctx, const char *netns_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>netdev_netns_ctx_free</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga9169d1aa2ca7fb9bd07026357f243b83</anchor>
      <arglist>(struct netdev_netns_ctx *netns_ctx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>netdev_netns_ctx_init</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga3b65d35445cb42434ebc36f5b6790c98</anchor>
      <arglist>(struct netdev_netns_ctx *netns_ctx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct netdev_netns_ctx *</type>
      <name>netdev_netns_ctx_find_by_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gacf3819f21848a90b2d993dc108554cb7</anchor>
      <arglist>(const char *netns_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct netdev_netns_ctx *</type>
      <name>netdev_netns_ctx_get</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga9c55df043ea41970ed82d1c492a4b2dd</anchor>
      <arglist>(const char *netns_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>netdev_netns_ctx_put</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gab396629a3b50261d6a5984c706ce298a</anchor>
      <arglist>(struct netdev_netns_ctx *netns_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_netdev *</type>
      <name>osmo_netdev_alloc</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga32e80af9f73ffa365aa4f29d2b2f4694</anchor>
      <arglist>(void *ctx, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_free</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaecbec5417790f43d80d16183f17e42ec</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_register</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaec0126c21739421bb5e662a97a75b7e1</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_unregister</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga8a7a3ebc822eec1042214c3f21e6ff1f</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_netdev_is_registered</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga337c7b72b1ae03b12fc450b40ae35dad</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_priv_data</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga4866aa0d1f95e3d029fc3dc6d4902d97</anchor>
      <arglist>(struct osmo_netdev *netdev, void *priv_data)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_netdev_get_priv_data</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga739ed172d1ab973677f45d1ec1e84fe1</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_ifupdown_ind_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gababee4a5d0c92a512a2341cda69f39b9</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_ifupdown_ind_cb_t ifupdown_ind_cb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_dev_name_chg_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gac844662701678dd871da96dc0087ae52</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_dev_name_chg_cb_t dev_name_chg_cb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_mtu_chg_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7bd8f74ebaa249c39ebb763ce75d3fba</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_mtu_chg_cb_t mtu_chg_cb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gad9fc6b9f309dcd3870ee2b5ac6156558</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_ifindex</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7281946d49b12d0a7c4eb4c16f558de7</anchor>
      <arglist>(struct osmo_netdev *netdev, unsigned int ifindex)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_netdev_get_ifindex</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga2b39c6854bc31bd9f249cf6573122b45</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga0dd272ca87047c551d30df56353af378</anchor>
      <arglist>(struct osmo_netdev *netdev, const char *netns_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gac398f4cda6c1be1ed1a9f4891e2ef27e</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_dev_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7dcaccdf71b69fabc3314f6572e376b5</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_mtu</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gad11e6788b3fb89bd8bcd810018aadbbd</anchor>
      <arglist>(struct osmo_netdev *netdev, uint32_t mtu)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_ifupdown</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaf9cb007a767215b58bbac2912ad8b7b6</anchor>
      <arglist>(struct osmo_netdev *netdev, bool ifupdown)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_add_addr</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga825bf951a8c5fc3792c2f8e038b6f623</anchor>
      <arglist>(struct osmo_netdev *netdev, const struct osmo_sockaddr *addr, uint8_t prefixlen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_add_route</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga780d0f6069c596a41383b619e3ce0bb9</anchor>
      <arglist>(struct osmo_netdev *netdev, const struct osmo_sockaddr *dst_addr, uint8_t dst_prefixlen, const struct osmo_sockaddr *gw_addr)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct llist_head</type>
      <name>g_netdev_netns_ctx_list</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga65309d7955fccd5c1d97b1b0bfccced9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct llist_head</type>
      <name>g_netdev_list</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga0293c3a48fcf58db0d868841e7e411c4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>netns.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>netns_8c.html</filename>
    <includes id="signal_8h" name="signal.h" local="no" imported="no">signal.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="netns_8h" name="netns.h" local="no" imported="no">osmocom/core/netns.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>_GNU_SOURCE</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga369266c24eacffb87046522897a570d5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETNS_PREFIX_PATH</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gabe26a585817471419f8fb2fb09a91a95</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETNS_CURRENT_PATH</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga9fd453e784a7796939100c1a30a6ab93</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_switch_enter</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga78aa2179b3dc90dfac0d0ac4cd12c9ce</anchor>
      <arglist>(int nsfd, struct osmo_netns_switch_state *state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_switch_exit</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gaaed38f1781aeeaf93d6b399359358ab4</anchor>
      <arglist>(struct osmo_netns_switch_state *state)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>create_netns</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga22f3010073b79b212d0b766686b9912c</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_open_fd</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gaf99b37aab415c93e1b1a083b9d1a7366</anchor>
      <arglist>(const char *name)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>osmo_io.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>osmo__io_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">talloc.h</includes>
    <includes id="osmo__io_8h" name="osmo_io.h" local="no" imported="no">osmocom/core/osmo_io.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="osmo__io__internal_8h" name="osmo_io_internal.h" local="yes" imported="no">osmo_io_internal.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IO_BACKEND_ENV</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga39780b6efe5513635fe389b5a1e15851</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_init</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac2aa95b43d279379692c700a982c1b36</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>__attribute__</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa811d40f7e27f5bf851308f829f85506</anchor>
      <arglist>((constructor(103)))</arglist>
    </member>
    <member kind="function">
      <type>enum osmo_io_backend</type>
      <name>osmo_io_get_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga9a5ee69f272cd017639951f2ed9dd350</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct iofd_msghdr *</type>
      <name>iofd_msghdr_alloc</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga85597f790f142e4d7d49ca104a771d52</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum iofd_msg_action action, struct msgb *msg, size_t cmsg_size)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_msghdr_free</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga25fcd917fe6e149b762c689c4c6648d4</anchor>
      <arglist>(struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>iofd_msgb_alloc2</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga9040b62bfc7b213a941e92bda5000eec</anchor>
      <arglist>(struct osmo_io_fd *iofd, size_t size)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>iofd_msgb_alloc</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa76da55f64623829b922e3320d3a35a1</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>iofd_txqueue_enqueue</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac93ff2c863e5b878ae7b35bb059454ab</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_txqueue_enqueue_front</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0a3e46bdd7713605f681e993b2d3f84f</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>struct iofd_msghdr *</type>
      <name>iofd_txqueue_dequeue</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gacba5cc1993b3e9512a1a9ef53f5f0539</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static enum iofd_seg_act</type>
      <name>iofd_handle_segmentation</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga6f1e706e4d7ad59bfd240c9567002713</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, struct msgb **pending_out)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_call_read_cb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0941375a74d6713f536cff8c48e3364b</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>iofd_msgb_length_max</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga170eaa88a44190ad3e73795bf4567451</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>iofd_prepare_handle_segmentation</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga41c2117b9e58768fbbdf26490ea3ed6a</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *in_msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_handle_segmented_read</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga91d182e9430d8fbe2a4bca5fa7cf4fa6</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_handle_recv</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gad7e46038ace42362fd2ad67d20260da9</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int rc, struct iofd_msghdr *hdr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_handle_send_completion</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga58b7e5d35ed02d28dab9b31004087a3d</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_write_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0c3ca8f15e1c3382902c226e001e98ad</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_sendto_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaefb2721bf4d1f6fb443214d989a90e8c</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int sendto_flags, const struct osmo_sockaddr *dest)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_sendmsg_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gabab40e7a5478bf4195dd8b79752bc1b2</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int sendmsg_flags, const struct msghdr *msgh)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>check_mode_callback_compat</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaca9d1219150743bf70dc3eee15466efe</anchor>
      <arglist>(enum osmo_io_fd_mode mode, const struct osmo_io_ops *ops)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_io_fd *</type>
      <name>osmo_iofd_setup</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa51acb50932f9ca44bfe0fe8a7005c93</anchor>
      <arglist>(const void *ctx, int fd, const char *name, enum osmo_io_fd_mode mode, const struct osmo_io_ops *ioops, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_cmsg_size</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaf275c59b5ddcb21ae83652ecb5756f31</anchor>
      <arglist>(struct osmo_io_fd *iofd, size_t cmsg_size)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_io_buffers</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga28891e57c72de4603b6460d0c84b5978</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum osmo_io_op op, uint8_t buffers)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_sqes</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga14a5a4c9dd90939a2beab07a843a630f</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum osmo_io_op op, uint8_t sqes)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_register</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa53e1057f56ac19ab23f35eecf4ed95a</anchor>
      <arglist>(struct osmo_io_fd *iofd, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_unregister</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga3ea9d5e4466d3cf56d922e25106fe8ff</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_txqueue_len</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac2a28e90c8d6d9ed17a6a69593443eb5</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_txqueue_clear</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga71bccce92a62bd5e5e50b840a0596890</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_free</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8a10e120fd35fcf7f0fd8b43f5b8d5aa</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_close</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gae87caba238946a9c9b29f248bb588f9a</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_alloc_info</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gadc4115972306e4f5614432119fefc386</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int size, unsigned int headroom)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_txqueue_max_length</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga62d298658dac2770d55e766fbcfc4fcb</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int max_length)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_get_txqueue_max_length</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga930572437897f5a8b1beaa3e9fa9af8d</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_iofd_get_data</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaddf0cc4e28ce123e52d0b62cc947d7ac</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_data</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga090693c9f45a01e5c39b7c4fbebb9079</anchor>
      <arglist>(struct osmo_io_fd *iofd, void *data)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_get_priv_nr</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gade3d061edf87b81213cbaf62eaa9da2e</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_priv_nr</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga52cab17b19fa5dd62f80b6a3bd020d7b</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int priv_nr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_get_fd</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8747c5e4274bd97c7faf968a5a6b1fd1</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_iofd_get_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gacaf7cf012bdf07bc8325deb929485a9d</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga7f7bbf44f3a5308f510ccaab21b89cfe</anchor>
      <arglist>(struct osmo_io_fd *iofd, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_name_f</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gadd605353d540e3107aa9075cdc24c23f</anchor>
      <arglist>(struct osmo_io_fd *iofd, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_ioops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga365266d41cdc7dc76fd0073c77084580</anchor>
      <arglist>(struct osmo_io_fd *iofd, const struct osmo_io_ops *ioops)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_get_ioops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga2acd36a67ea289bc3b043d9125c6e2c4</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct osmo_io_ops *ioops)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_notify_connected</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga51608c4401dcbc99a7ad91a2746f8e90</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_io_backend_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8f5cb2143224530f5cf0c0e84e4ade1b</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_iofd_mode_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac9c7fc1e9c6e8219afd43e9e19a96b61</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static enum osmo_io_backend</type>
      <name>g_io_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gae8d889e5c9ea71b5099d26954f1f5914</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct iofd_backend_ops</type>
      <name>osmo_iofd_ops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga93e9f1ee0b388b44d1d4cca2461f29fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread bool</type>
      <name>g_thread_initialized</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga6085c489092d3fb995087e67bee1eb3b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>osmo_io_internal.h</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>osmo__io__internal_8h.html</filename>
    <includes id="osmo__io_8h" name="osmo_io.h" local="no" imported="no">osmocom/core/osmo_io.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <class kind="struct">iofd_backend_ops</class>
    <class kind="struct">osmo_io_fd</class>
    <class kind="struct">iofd_msghdr</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IO_DEFAULT_MSGB_SIZE</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>ac26ea151546a5c5b1fb49b85b2739bb4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IO_DEFAULT_MSGB_HEADROOM</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a034a8c174287b51b8ec834564cb1ce11</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IO_BACKEND_DEFAULT</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>ac2e3672dd4658f77813dc76b18074736</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_CLOSED</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a4b3d0e4803b738d9436aa411f2770034</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_IN_CALLBACK</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a2694a1c04110dd6403e04deee17e3aa9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_TO_FREE</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a4cca1f2d9116f1680bb2ff6af835b72f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_NOTIFY_CONNECTED</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a7429e58bebe1e31312e9c6b82f0eebae</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_FD_REGISTERED</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a8cfe0aeea01b2a3a63c9a3d945b8a4ce</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_SET</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a7d9f3cd904a9745fc793d4b76fe9ee76</anchor>
      <arglist>(iofd, flag)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_UNSET</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>aced0b602e5b35e9726f1e7433010fb51</anchor>
      <arglist>(iofd, flag)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_FLAG_ISSET</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>aa535ebf3c880632ccb6898ef2757f624</anchor>
      <arglist>(iofd, flag)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_MSGHDR_MAX_READ_SQES</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a0bca88b6ad1436de430ee25289045b1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>IOFD_MSGHDR_IO_BUFFERS</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a2910e4a689136baced5b84b849bc5c7e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>iofd_msg_action</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbe</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_ACT_READ</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbead1ceb77e84c0d21744ab55953b204f98</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_ACT_WRITE</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbeadb009f4447c814a2680282636d344d65</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_ACT_RECVFROM</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbea0c77cd90604914901e7ac0515dd0a891</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_ACT_SENDTO</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbea7904e55eff068726ba2646fe8e71050b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_ACT_RECVMSG</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbea572636da621c7f90df79f437b752e941</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_ACT_SENDMSG</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a3466ad83a1cbf0d9052ad8dffcb73dbeaf07c646d626bb16658b346ea6422c4ae</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>iofd_seg_act</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a7f4ae8cde9085becb32b1bd28e0e8a9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_SEG_ACT_HANDLE_ONE</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a7f4ae8cde9085becb32b1bd28e0e8a9facc29f41e52c26c614f3ce40cdaa88945</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_SEG_ACT_HANDLE_MORE</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a7f4ae8cde9085becb32b1bd28e0e8a9fa68c46a5c04ca6aaabcaa524e3ef69857</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>IOFD_SEG_ACT_DEFER</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a7f4ae8cde9085becb32b1bd28e0e8a9fa4e5195957cdbf94c472a883cfe1a6689</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>struct iofd_msghdr *</type>
      <name>iofd_msghdr_alloc</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga85597f790f142e4d7d49ca104a771d52</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum iofd_msg_action action, struct msgb *msg, size_t cmsg_size)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_msghdr_free</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga25fcd917fe6e149b762c689c4c6648d4</anchor>
      <arglist>(struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>iofd_msgb_alloc2</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga9040b62bfc7b213a941e92bda5000eec</anchor>
      <arglist>(struct osmo_io_fd *iofd, size_t size)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>iofd_msgb_alloc</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa76da55f64623829b922e3320d3a35a1</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_handle_recv</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gad7e46038ace42362fd2ad67d20260da9</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int rc, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_handle_send_completion</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga58b7e5d35ed02d28dab9b31004087a3d</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>iofd_txqueue_enqueue</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac93ff2c863e5b878ae7b35bb059454ab</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_txqueue_enqueue_front</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0a3e46bdd7713605f681e993b2d3f84f</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>struct iofd_msghdr *</type>
      <name>iofd_txqueue_dequeue</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gacba5cc1993b3e9512a1a9ef53f5f0539</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>const struct iofd_backend_ops</type>
      <name>iofd_poll_ops</name>
      <anchorfile>osmo__io__internal_8h.html</anchorfile>
      <anchor>a9a3acf8b445e5edaa11e143fdecd3ad3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>osmo_io_poll.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>osmo__io__poll_8c.html</filename>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">talloc.h</includes>
    <includes id="osmo__io_8h" name="osmo_io.h" local="no" imported="no">osmocom/core/osmo_io.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="osmo__io__internal_8h" name="osmo_io_internal.h" local="yes" imported="no">osmo_io_internal.h</includes>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_handle_recv</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a15f79f87cdaf274df4ace54d1fc8ac8b</anchor>
      <arglist>(struct iofd_msghdr *msghdr, int rc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_ofd_cb_recvmsg_sendmsg</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>ab08e6361d882258babb942848af0b1fe</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>iofd_poll_ofd_cb_dispatch</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a0fa3663095ac7bd93b8ccf2c32823dfb</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>iofd_poll_register</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>ad83795bf7dbb8d33f677eb356b9ebb43</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>iofd_poll_unregister</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a0800cd7655396d0d680ec91e5f313ce9</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>iofd_poll_close</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>afca6e9cddc056b2cb72e7fe760c4511d</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_read_enable</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a0ab2537cb9d8dba1f00070d77fd0dbc9</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_read_disable</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>aeae744d164f2c8be6da3aecfb351590a</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_write_enable</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a9ef6093c9f4ba2e12d4a6fadc19a6f16</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_write_disable</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a26c5852d1ca8c6b37f5f2893e6d9402d</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_poll_notify_connected</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>ac1be62e48b7eb9ce32ce7372735738c1</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>const struct iofd_backend_ops</type>
      <name>iofd_poll_ops</name>
      <anchorfile>osmo__io__poll_8c.html</anchorfile>
      <anchor>a9a3acf8b445e5edaa11e143fdecd3ad3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>osmo_io_uring.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>osmo__io__uring_8c.html</filename>
  </compound>
  <compound kind="file">
    <name>panic.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>panic_8c.html</filename>
    <includes id="panic_8h" name="panic.h" local="no" imported="no">osmocom/core/panic.h</includes>
    <includes id="backtrace_8h" name="backtrace.h" local="no" imported="no">osmocom/core/backtrace.h</includes>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_panic_default</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1a2fe815e479e972592b48d6919b8a4c</anchor>
      <arglist>(const char *fmt, va_list args)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_panic</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae8ebb6efd9b30d8d8940f6d71dc32833</anchor>
      <arglist>(const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_set_panic_handler</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga68ffd899763d4c8d24a8df1708b3fe9d</anchor>
      <arglist>(osmo_panic_handler_t h)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static osmo_panic_handler_t</type>
      <name>osmo_panic_handler</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad9bb92023569bababaef4bbf1ed9f99b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>plugin.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>plugin_8c.html</filename>
    <member kind="function">
      <type>int</type>
      <name>osmo_plugin_load_all</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga298853e248d7557902d4c0b6eb400d01</anchor>
      <arglist>(const char *directory)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>prbs.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>prbs_8c.html</filename>
    <includes id="bits_8h" name="bits.h" local="no" imported="no">osmocom/core/bits.h</includes>
    <includes id="prbs_8h" name="prbs.h" local="no" imported="no">osmocom/core/prbs.h</includes>
    <member kind="function">
      <type>void</type>
      <name>osmo_prbs_state_init</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a20d9d984ba6af30a2550950cb3134c63</anchor>
      <arglist>(struct osmo_prbs_state *st, const struct osmo_prbs *prbs)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_prbs_process_bit</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>ac6c89dbce782ac51b8e51ec0a9736bcc</anchor>
      <arglist>(struct osmo_prbs_state *state, ubit_t bit)</arglist>
    </member>
    <member kind="function">
      <type>ubit_t</type>
      <name>osmo_prbs_get_ubit</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a525d10aa4287f6da7f1fe62f0482f7e2</anchor>
      <arglist>(struct osmo_prbs_state *state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_prbs_get_ubits</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a6f0f56ecec20b7c1dde8e4eb2886572d</anchor>
      <arglist>(ubit_t *out, unsigned int out_len, struct osmo_prbs_state *state)</arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs7</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a0a484b320cfb1d0000ac78d4e7467565</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs9</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a592a20b5fc9dfe64a63059737234ca3f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs11</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a7ad14c2c22b4b92a3e176f9d1bd51701</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_prbs</type>
      <name>osmo_prbs15</name>
      <anchorfile>prbs_8c.html</anchorfile>
      <anchor>a3c3d26cc5c9bba987b72d0d05a06a8ba</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>prim.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>prim_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="prim_8h" name="prim.h" local="no" imported="no">osmocom/core/prim.h</includes>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_event_for_prim</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga65cffc8b84a2c3d2f200560096810695</anchor>
      <arglist>(const struct osmo_prim_hdr *oph, const struct osmo_prim_event_map *maps)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_prim_op_names</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga886b7582fd2947d0582cd8c9acd30cc9</anchor>
      <arglist>[5]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>probes.d</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>probes_8d.html</filename>
    <member kind="function">
      <type>probe</type>
      <name>log_done</name>
      <anchorfile>probes_8d.html</anchorfile>
      <anchor>a700e507ab0a65251891bda24a80ee3e2</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>probe</type>
      <name>stats_start</name>
      <anchorfile>probes_8d.html</anchorfile>
      <anchor>aba69133770f799b0056ff8c87dc938ae</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>probe</type>
      <name>stats_done</name>
      <anchorfile>probes_8d.html</anchorfile>
      <anchor>ac9c86b2dcf9563a09931eba2b997fbf3</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>provider</type>
      <name>libosmocore</name>
      <anchorfile>probes_8d.html</anchorfile>
      <anchor>a74cc110e0f22b9b0776fc6294a42ade1</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>rate_ctr.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>rate__ctr_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="rate__ctr_8h" name="rate_ctr.h" local="no" imported="no">osmocom/core/rate_ctr.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gac8fcdb2fb5acb5fa9b4144f7858a6f7b</anchor>
      <arglist>(rate_ctr_groups)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>rate_ctrl_group_desc_validate</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gaa4194e021daec715f7d17ca92dea258b</anchor>
      <arglist>(const struct rate_ctr_group_desc *desc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static char *</type>
      <name>mangle_identifier_ifneeded</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gac3403aeac127acce2366d638809a5d61</anchor>
      <arglist>(const void *ctx, const char *in)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct rate_ctr_group_desc *</type>
      <name>rate_ctr_group_desc_mangle</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga901d8e3b5d32175c2c23e217b0561420</anchor>
      <arglist>(void *ctx, const struct rate_ctr_group_desc *desc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>rate_ctr_get_unused_name_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga2995d63535f2a8774fb553b9fef7c060</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr_group *</type>
      <name>rate_ctr_group_alloc</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga108907e64481db1455cb1fca5374b659</anchor>
      <arglist>(void *ctx, const struct rate_ctr_group_desc *desc, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_free</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga2b28875fc006413054b17cb80e540edd</anchor>
      <arglist>(struct rate_ctr_group *grp)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr *</type>
      <name>rate_ctr_group_get_ctr</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga317acaee831407fbff64233258a48734</anchor>
      <arglist>(struct rate_ctr_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_set_name</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga5d551206dbf14b5dd7c465e3d6e6ee8d</anchor>
      <arglist>(struct rate_ctr_group *grp, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_add</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gada3668404ea1bd57e2aaab8287bc16b6</anchor>
      <arglist>(struct rate_ctr *ctr, int inc)</arglist>
    </member>
    <member kind="function">
      <type>int64_t</type>
      <name>rate_ctr_difference</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gaabc955b67c53b2d239bd6d6193cbf6c8</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>interval_expired</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga079b465bb26f59e060c8108b81284034</anchor>
      <arglist>(struct rate_ctr *ctr, enum rate_ctr_intv intv)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_group_intv</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga7f2e58d3d3a1349845924f05489326df</anchor>
      <arglist>(struct rate_ctr_group *grp)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>rate_ctr_timer_cb</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga42e417495cd1b2bf5bd409af1ca429f9</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_init</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga9bfe8ec87ccaabd9f1fdddef5f36cbfa</anchor>
      <arglist>(void *tall_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr_group *</type>
      <name>rate_ctr_get_group_by_name_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8ec85b6a07ce4c18fd9b8b548a4badfe</anchor>
      <arglist>(const char *name, const unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>const struct rate_ctr *</type>
      <name>rate_ctr_get_by_name</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga13a0c06042c667f41dc56ee02325c077</anchor>
      <arglist>(const struct rate_ctr_group *ctrg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_for_each_counter</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gacded8db7ae1f6b7bd5b837680df23df7</anchor>
      <arglist>(struct rate_ctr_group *ctrg, rate_ctr_handler_t handle_counter, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_for_each_group</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga7481b6560512295ed28806e2fe916c09</anchor>
      <arglist>(rate_ctr_group_handler_t handle_group, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_reset</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga099666d2e04df4d35c73b373b4a3cb5f</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_reset</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga55836246eef523c255256cb530a99d64</anchor>
      <arglist>(struct rate_ctr_group *ctrg)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static void *</type>
      <name>tall_rate_ctr_ctx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga3b69e9b208cadac269976b2c025c06b4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_fd</type>
      <name>rate_ctr_timer</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga323b22b7fea6ff550272c9fa065638b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static uint64_t</type>
      <name>timer_ticks</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gabdf5657b1022ebe1848ae003a19ae943</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>rbtree.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>rbtree_8c.html</filename>
    <includes id="linuxrbtree_8h" name="linuxrbtree.h" local="no" imported="no">osmocom/core/linuxrbtree.h</includes>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__rb_rotate_left</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>a673637582dd160489ff1b49e43a502cc</anchor>
      <arglist>(struct rb_node *node, struct rb_root *root)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__rb_rotate_right</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>afad2a114dd2972b3e98ccbd788a00e45</anchor>
      <arglist>(struct rb_node *node, struct rb_root *root)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rb_insert_color</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>aaa9d2b611f394a0598c1f26919a4bbe3</anchor>
      <arglist>(struct rb_node *node, struct rb_root *root)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__rb_erase_color</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>aca783acd80f2acbb1ab41d57e620258d</anchor>
      <arglist>(struct rb_node *node, struct rb_node *parent, struct rb_root *root)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rb_erase</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>aaf97b19a6ab48c3ac68356712c86de99</anchor>
      <arglist>(struct rb_node *node, struct rb_root *root)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_first</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>a1297e3f835e459a923c678ca425469f2</anchor>
      <arglist>(const struct rb_root *root)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_last</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>ae8169b2c6514051b96ddc64e2e1c71f3</anchor>
      <arglist>(const struct rb_root *root)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_next</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>a501296ccc0bfadb5543888bd118640ed</anchor>
      <arglist>(const struct rb_node *node)</arglist>
    </member>
    <member kind="function">
      <type>struct rb_node *</type>
      <name>rb_prev</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>a4356073ebfcc558daf8891b0fa4ac762</anchor>
      <arglist>(const struct rb_node *node)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rb_replace_node</name>
      <anchorfile>rbtree_8c.html</anchorfile>
      <anchor>ad71b2a7ccaea205813fad9cfeb3b0765</anchor>
      <arglist>(struct rb_node *victim, struct rb_node *new, struct rb_root *root)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>select.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>select_8c.html</filename>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="stat__item_8h" name="stat_item.h" local="no" imported="no">osmocom/core/stat_item.h</includes>
    <includes id="stats__tcp_8h" name="stats_tcp.h" local="no" imported="no">osmocom/core/stats_tcp.h</includes>
  </compound>
  <compound kind="file">
    <name>sercomm.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>sercomm_8c.html</filename>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="sercomm_8h" name="sercomm.h" local="no" imported="no">osmocom/core/sercomm.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>DEFAULT_RX_MSG_SIZE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gae5506ebbc189cc252a48c4a119af43f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_FLAG</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga7dfaac00ac4dc67fd47f2cbdf51d5c72</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_ESCAPE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga8a4ca60e37719a6f32b08305b1fd8db0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_C_UI</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga036f010e0e55c0523d70f3b5a8493a36</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_C_P_BIT</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga150cf3cff25fd010a65a9da00d957654</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_C_F_BIT</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gad61ef90767cc6621972c406c94c69a39</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>rx_state</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga20874253e23bc4c1d20f69479175ce6f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_WAIT_START</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fa5df225b93defbcb282b88f4769bda5d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_ADDR</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fa8b7b4b41ae65d9aa7f086293ef9fbd65</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_CTRL</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fad423f5424c105e9c6e76cbe87bd4584f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_DATA</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fa9219e818fd4bf7c793a0d80c2c373aa8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_ESCAPE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fad67efb3066cd5c633885ab0f4d9fbe16</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_lock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga5b19bd280856d611048f7bc3c20c740d</anchor>
      <arglist>(unsigned long __attribute__((unused)) *flags)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_unlock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga6e6ee76e77fe4c2151ba2ded4b845c16</anchor>
      <arglist>(unsigned long __attribute__((unused)) *flags)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gaf9aace1b44b73111e15aa39f06f43456</anchor>
      <arglist>((weak))</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sercomm_init</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gab2d8eec4732f508236647b94a525f93b</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_initialized</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga5ef6c458cc669168c62cd82a277f3dd6</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sercomm_sendmsg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gaa5c1979d9a54e7be35d58f5c696a6900</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_sercomm_tx_queue_depth</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga17b7f2be907d071088e806b513c67aa2</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_change_speed</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga8f6f058187c96d9fded862e2f6d8841e</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint32_t bdrt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_drv_pull</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga0b371b3a27149b137f7589b194ee26c6</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t *ch)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_register_rx_cb</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga08ec337e1f51fafb07d18d7b6c717a78</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, dlci_cb_t cb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>dispatch_rx_msg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga2fdb62de1860c2806279ce9d60403956</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_drv_rx_char</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga10cbc58f23aafa1381074457c70c2b34</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t ch)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>serial.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>serial_8c.html</filename>
    <includes id="serial_8h" name="serial.h" local="no" imported="no">osmocom/core/serial.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>dbg_perror</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga7c79736a4054bb325bc9228b286401f7</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_init</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga1f1af4f9541cea98915c807938d576af</anchor>
      <arglist>(const char *dev, speed_t baudrate)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>_osmo_serial_set_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gad354988168b080f5a2a8f6b0e3aa4c2e</anchor>
      <arglist>(int fd, speed_t baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_set_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gac12e9df0274d063a3a188f16c9f86378</anchor>
      <arglist>(int fd, speed_t baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_set_custom_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga53bf675db7d6c886d683bcfa3621193c</anchor>
      <arglist>(int fd, int baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_clear_custom_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gaf674bb14346e7bbd6f0555464fb66a53</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_speed_t</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga79c9ea27d7852c2652122e5bbdb47511</anchor>
      <arglist>(unsigned int baudrate, speed_t *speed)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>signal.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>signal_8c.html</filename>
    <includes id="signal_8h" name="signal.h" local="no" imported="no">osmocom/core/signal.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <class kind="struct">signal_handler</class>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gaa46f0e38b6dcdd49627b6d171d51e9c5</anchor>
      <arglist>(signal_handler_list)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_signal_talloc_ctx_init</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gacbbc59427aa2fd838becc61d3443ca44</anchor>
      <arglist>(void *root_ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_signal_register_handler</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga34e5e27e85ffdaa63744cf9e97468807</anchor>
      <arglist>(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_signal_unregister_handler</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga62da9d737e40883ac0d15b7b3bc049fb</anchor>
      <arglist>(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_signal_dispatch</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga8eb0fdf74d9ae54383b10cb88792a008</anchor>
      <arglist>(unsigned int subsys, unsigned int signal, void *signal_data)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_sigh_ctx</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga2dd2b6ac5a7a35b5c834ccf82361e39b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>sockaddr_str.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>sockaddr__str_8c.html</filename>
  </compound>
  <compound kind="file">
    <name>socket.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>socket_8c.html</filename>
  </compound>
  <compound kind="file">
    <name>soft_uart.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>soft__uart_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="soft__uart_8h" name="soft_uart.h" local="no" imported="no">osmocom/core/soft_uart.h</includes>
    <class kind="struct">osmo_soft_uart</class>
    <member kind="enumeration">
      <type></type>
      <name>suart_flow_state</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a712b6e9716df97f8afbc824d84a3cd7a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SUART_FLOW_ST_IDLE</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a712b6e9716df97f8afbc824d84a3cd7aacb8be86108ddd102dd8257eb03646b50</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SUART_FLOW_ST_DATA</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a712b6e9716df97f8afbc824d84a3cd7aa5eb5c405008623776afd99b76c725164</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SUART_FLOW_ST_PARITY</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a712b6e9716df97f8afbc824d84a3cd7aa02c83350b95976cc2e9277b9d69072ef</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SUART_FLOW_ST_STOP</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a712b6e9716df97f8afbc824d84a3cd7aabdce5fdd17eebdc6b97ee8d16d514fa2</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_flush_rx</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a39fc01350377643743e89b630fa3ce1a</anchor>
      <arglist>(struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>suart_rx_ch</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a52eee842b0f5bb5c306aeaade50ce622</anchor>
      <arglist>(struct osmo_soft_uart *suart, uint8_t ch)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>suart_rx_bit</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>ac877ded2270edfcb59c9783634c5223d</anchor>
      <arglist>(struct osmo_soft_uart *suart, const ubit_t bit)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>suart_rx_timer_cb</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>af5115b80e507b064cb2e6a72c46f5fed</anchor>
      <arglist>(void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_rx_ubits</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>ad870a6210297fcf8a5a5b528d3b6269e</anchor>
      <arglist>(struct osmo_soft_uart *suart, const ubit_t *ubits, size_t n_ubits)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static ubit_t</type>
      <name>suart_tx_bit</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a295f6ab8d2c8664a4812d191f8a4244f</anchor>
      <arglist>(struct osmo_soft_uart *suart, struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>suart_tx_pending</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>af1365f2105506cc49959fdd160a0d4bc</anchor>
      <arglist>(struct osmo_soft_uart *suart, ubit_t *ubits, size_t n_ubits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_tx_ubits</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a4c1a3c81790eec8747c4d33e091fb1b3</anchor>
      <arglist>(struct osmo_soft_uart *suart, ubit_t *ubits, size_t n_ubits)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_soft_uart_get_status</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a92c611f063e605c836017d77b6a64789</anchor>
      <arglist>(const struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_set_status</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>ae5c16cdf602285cc395008816ecf6666</anchor>
      <arglist>(struct osmo_soft_uart *suart, unsigned int status)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_set_status_line</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a2dbac5fede9255613820199209c7b580</anchor>
      <arglist>(struct osmo_soft_uart *suart, enum osmo_soft_uart_status line, bool active)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_soft_uart *</type>
      <name>osmo_soft_uart_alloc</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a063d09085ca7ea01ee93e08d6199c751</anchor>
      <arglist>(void *ctx, const char *name, const struct osmo_soft_uart_cfg *cfg)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_free</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a43a70e38b6059372f81ab8f8f7f14e9d</anchor>
      <arglist>(struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_configure</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>afc55d9d32b42aa1e3ad0e450d91d875a</anchor>
      <arglist>(struct osmo_soft_uart *suart, const struct osmo_soft_uart_cfg *cfg)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_soft_uart_get_name</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a35b6e0b25f80ed22fab1758536edc4cc</anchor>
      <arglist>(const struct osmo_soft_uart *suart)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_soft_uart_set_name</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a3351d78d1f56c05dd919c2c3a748130a</anchor>
      <arglist>(struct osmo_soft_uart *suart, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_set_rx</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a390451aed05c1adc0450fe091377f651</anchor>
      <arglist>(struct osmo_soft_uart *suart, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_soft_uart_set_tx</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a21fbc23b6423f407db7b710a18f08caf</anchor>
      <arglist>(struct osmo_soft_uart *suart, bool enable)</arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_soft_uart_cfg</type>
      <name>osmo_soft_uart_default_cfg</name>
      <anchorfile>soft__uart_8c.html</anchorfile>
      <anchor>a4f0f43abec08e6901270f24fb213c024</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>stat_item.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>stat__item_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="stat__item_8h" name="stat_item.h" local="no" imported="no">osmocom/core/stat_item.h</includes>
    <includes id="stat__item__internal_8h" name="stat_item_internal.h" local="no" imported="no">stat_item_internal.h</includes>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga918922f0159b002fd13bf021ec3bc294</anchor>
      <arglist>(osmo_stat_item_groups)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_group_alloc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gaa1a7c1500d64a803883ee7ff12ccf963</anchor>
      <arglist>(void *ctx, const struct osmo_stat_item_group_desc *group_desc, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_free</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga070d81e1291c4f54abfb159cda2b5340</anchor>
      <arglist>(struct osmo_stat_item_group *grp)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item *</type>
      <name>osmo_stat_item_group_get_item</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad0553a8db021f131aca944e4200785ec</anchor>
      <arglist>(struct osmo_stat_item_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_set_name</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gadf35c36fb3cefaba1a1f9d7daa68bdf4</anchor>
      <arglist>(struct osmo_stat_item_group *statg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_inc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga45140f45c0e7e057f83c97ddab5330e6</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_dec</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga462b34eb55a9432b335f5e2cc32a5498</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_set</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gabf7ea5516b1929ca8b8b2d2e51c0f662</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_flush</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga312b34dbb43757e505c5c215592c7552</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_init</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga9ac290aa2ab34c36fc86bf620adec408</anchor>
      <arglist>(void *tall_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_get_group_by_name_idx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga59062bfcaa3f804df9ac69bcf52a2fb4</anchor>
      <arglist>(const char *name, const unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_get_group_by_name_idxname</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga49dec12c98ad324d7c255c8a4f9f6437</anchor>
      <arglist>(const char *group_name, const char *idx_name)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_stat_item *</type>
      <name>osmo_stat_item_get_by_name</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga088dc4ca88656f25e0a0a6bdfb024bc1</anchor>
      <arglist>(const struct osmo_stat_item_group *statg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_for_each_item</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga4b20503c85250536c1fe215aa8f0caac</anchor>
      <arglist>(struct osmo_stat_item_group *statg, osmo_stat_item_handler_t handle_item, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_for_each_group</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gae1367b44f93a6ea46cbe90a955b06dda</anchor>
      <arglist>(osmo_stat_item_group_handler_t handle_group, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_stat_item_get_last</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga595e25b76fdca35c9e2ec5b4e4e4410a</anchor>
      <arglist>(const struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_reset</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad3d919ff9ce0c85a69388252aeb257c9</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_reset</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga9522e7b07091b7ad531a41f07764359f</anchor>
      <arglist>(struct osmo_stat_item_group *statg)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_stat_item_desc *</type>
      <name>osmo_stat_item_get_desc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga2b5922d91fc40c32c41e59dd7f87c9b7</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static void *</type>
      <name>tall_stat_item_ctx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga7785ff605fed9985c603bf1a691c97a0</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>stat_item_internal.h</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>stat__item__internal_8h.html</filename>
    <class kind="struct">osmo_stat_item_period</class>
    <class kind="struct">osmo_stat_item</class>
  </compound>
  <compound kind="file">
    <name>stats.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>stats_8c.html</filename>
    <includes id="byteswap_8h" name="byteswap.h" local="no" imported="no">osmocom/core/byteswap.h</includes>
    <includes id="stats_8h" name="stats.h" local="no" imported="no">osmocom/core/stats.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="rate__ctr_8h" name="rate_ctr.h" local="no" imported="no">osmocom/core/rate_ctr.h</includes>
    <includes id="stat__item_8h" name="stat_item.h" local="no" imported="no">osmocom/core/stat_item.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="counter_8h" name="counter.h" local="no" imported="no">osmocom/core/counter.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <includes id="stats__tcp_8h" name="stats_tcp.h" local="no" imported="no">osmocom/core/stats_tcp.h</includes>
    <includes id="stat__item__internal_8h" name="stat_item_internal.h" local="no" imported="no">stat_item_internal.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>TRACE</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga9b44d241a9984069d3c9de002b6c149c</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TRACE_ENABLED</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaa753ae2ccad22fb27615272c6b2b04e0</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>STATS_DEFAULT_INTERVAL</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gac2bb04a248ead7da04e3012ed277b003</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>STATS_DEFAULT_BUFLEN</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga9f25eb15952748082b42df8b60d563ce</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga4cfa9333d7da6952b2b86af3f3c5f1ae</anchor>
      <arglist>(osmo_stats_reporter_list)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_log_send_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gafc5d56a462747ffcd7d57fa761adf2bb</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_log_send_item</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gac3639eaadd98ace3c4e7c81119f85fbe</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int64_t value)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>update_srep_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab7df28b2e32b2437bfc88185a1a5c06f</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_timer_cb</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gae722f21779b58b9cf1bafc9b4b97d8b1</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>start_timer</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf99f98cfd0da9f59b9e490bf04b12100</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_alloc</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga0a6f227702938604e3162499395a1a9d</anchor>
      <arglist>(enum osmo_stats_reporter_type type, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stats_reporter_free</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga16a001641deb34a4ff7106cf00bee62b</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stats_init</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab6f9cb91a533a0b2a30cd075ec811acc</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_find</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga71590de43187f692b30b3ff315f11efb</anchor>
      <arglist>(enum osmo_stats_reporter_type type, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_max_class</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga510a4ce51e37e732238cf3b0ba9c5d34</anchor>
      <arglist>(struct osmo_stats_reporter *srep, enum osmo_stats_class class_id)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_set_interval</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga6b876111cf8223000e1e68aa85fa021d</anchor>
      <arglist>(int interval)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_flush_period</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2a07dfcee5d2d5bf13a287fc8f45adce</anchor>
      <arglist>(struct osmo_stats_reporter *srep, unsigned int period)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_name_prefix</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1be0c1ca85a6f3cac145394648e973e3</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *prefix)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_enable</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gad4c76af3ecaf57ea243193bf33321da8</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_disable</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga411097be97933654c345f9fc29a27abc</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_create_log</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaa6e7ebfa5b99d90a5b465c93c8d40175</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_log_send</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2fc7f059975bf4a18b32171b931a641e</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *type, const char *name1, unsigned int index1, const char *name2, int value, const char *unit)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_check_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga915f63bb63276a8a98aad6c3cfac9124</anchor>
      <arglist>(struct osmo_stats_reporter *srep, unsigned int index, int class_id)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_send_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga74eb80f5d3bcfdc0e720975b96dd28f6</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>rate_ctr_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1b029e32e54b05edadbfcf4c814b12f9</anchor>
      <arglist>(struct rate_ctr_group *ctrg, struct rate_ctr *ctr, const struct rate_ctr_desc *desc, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>rate_ctr_group_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga47631ccc3d69c5bfa3fd0c48735a6612</anchor>
      <arglist>(struct rate_ctr_group *ctrg, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_send_item</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf90de2e2999acd6d49f9c6175fa3bcbb</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int32_t value)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stat_item_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf542dbe9d1e8d114dc9b81af94ed9f04</anchor>
      <arglist>(struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stat_item_group_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1f68226f8cab58ed861ed06aa70eeacc</anchor>
      <arglist>(struct osmo_stat_item_group *statg, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>handle_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaaf185b3549510e956756cad507846f93</anchor>
      <arglist>(struct osmo_counter *counter, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>flush_all_reporters</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2e835741c94f1a7f0ca732cc3bcbd3b5</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_report</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga7b9e1f1d7a9e1e469fbb796bbe019fbc</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static void *</type>
      <name>osmo_stats_ctx</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga4e0b725ba99e4703c4d886dacda2557b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static int</type>
      <name>is_initialised</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga7f43ce07ecb101dec32db3ff82597024</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_stats_config</type>
      <name>s_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf5364d1732312969d6ade23325ce1493</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stats_config *</type>
      <name>osmo_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga69cc1eef57bf721fad3eb0b08b44231a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_fd</type>
      <name>osmo_stats_timer</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga54c4286630b9ee36ce26a8a71b5d3420</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>stats_statsd.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>stats__statsd_8c.html</filename>
    <includes id="stats_8h" name="stats.h" local="no" imported="no">osmocom/core/stats.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="rate__ctr_8h" name="rate_ctr.h" local="no" imported="no">osmocom/core/rate_ctr.h</includes>
    <includes id="stat__item_8h" name="stat_item.h" local="no" imported="no">osmocom/core/stat_item.h</includes>
    <includes id="msgb_8h" name="msgb.h" local="no" imported="no">osmocom/core/msgb.h</includes>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_statsd_send_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga3a41360f016ef3c9c58fb925611b9dbb</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_statsd_send_item</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2199d156ce5a865fed49582ab3c5d9f6</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int64_t value)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_create_statsd</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga82f58af39526c20141673c7c33e8b1cc</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_stats_reporter_sanitize_name</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gac75583e4c34f7749adfcc1dbd639beaa</anchor>
      <arglist>(char *buf)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_statsd_send</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaae6bd21b1cd1869e42a8212b520d6375</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *name1, const char *index1, const char *name2, int64_t value, const char *unit)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>stats_tcp.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>stats__tcp_8c.html</filename>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="stats__tcp_8h" name="stats_tcp.h" local="no" imported="no">osmocom/core/stats_tcp.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_osmo_fd_register</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga355e09b1123c1271eeb5122a4b522349</anchor>
      <arglist>(const struct osmo_fd *fd, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_osmo_fd_unregister</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga05b395c0e693d508ce0eb6bbec07a506</anchor>
      <arglist>(const struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_set_interval</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga867c62bffd27c6066a952a2b061b888b</anchor>
      <arglist>(int interval)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_tcp_stats_config</type>
      <name>s_tcp_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga93f90d34c7469d7f3a5bfb46c03e9bc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_tcp_stats_config *</type>
      <name>osmo_tcp_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga240c607283cc0da3b2f1732fa54b6ca6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>strrb.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>strrb_8c.html</filename>
    <includes id="strrb_8h" name="strrb.h" local="no" imported="no">osmocom/core/strrb.h</includes>
    <includes id="talloc_8h" name="talloc.h" local="no" imported="no">osmocom/core/talloc.h</includes>
    <member kind="function">
      <type>struct osmo_strrb *</type>
      <name>osmo_strrb_create</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaaab7bfea64d0b1b7e86dbd717d253a30</anchor>
      <arglist>(void *talloc_ctx, size_t rb_size)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_strrb_is_empty</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa8d2f58d4f27e99836d85b5e5c568136</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strrb_get_nth</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga284dcee685ff37d0138d1f739ff24d20</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int string_index)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_osmo_strrb_is_bufindex_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab46115cd7bc48f5b20b7281bf64ef1e2</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int bufi)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strrb_elements</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac730d01ff38c9eb9e9f10ce1f12cf3f0</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_strrb_add</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3d8e138301a2fc21779b7259831a677c</anchor>
      <arglist>(struct osmo_strrb *rb, const char *data)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tdef.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>tdef_8c.html</filename>
    <includes id="fsm_8h" name="fsm.h" local="no" imported="no">osmocom/core/fsm.h</includes>
    <includes id="tdef_8h" name="tdef.h" local="no" imported="no">osmocom/core/tdef.h</includes>
    <member kind="function" static="yes">
      <type>static unsigned long</type>
      <name>osmo_tdef_factor</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gae2c06fad8c067d3ae2d6ebbaa133e070</anchor>
      <arglist>(enum osmo_tdef_unit a, enum osmo_tdef_unit b)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned long</type>
      <name>osmo_tdef_round</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga95e55c67fc577ce73009b70f1a3c432b</anchor>
      <arglist>(unsigned long val, enum osmo_tdef_unit from_unit, enum osmo_tdef_unit to_unit)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tdefs_reset</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0a2cda1d30e23023cc179b68b8c624e6</anchor>
      <arglist>(struct osmo_tdef *tdefs)</arglist>
    </member>
    <member kind="function">
      <type>unsigned long</type>
      <name>osmo_tdef_get</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga1902036c8ce361a6ba043b90f3026ae7</anchor>
      <arglist>(const struct osmo_tdef *tdefs, int T, enum osmo_tdef_unit as_unit, long val_if_not_present)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_tdef *</type>
      <name>osmo_tdef_get_entry</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga165520a7b18876662703753759941e00</anchor>
      <arglist>(struct osmo_tdef *tdefs, int T)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tdef_set</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gab2f59867f10a781019db1d52c991ce95</anchor>
      <arglist>(struct osmo_tdef *tdefs, int T, unsigned long val, enum osmo_tdef_unit val_unit)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_tdef_val_in_range</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4b9908c0c45f1226f4fae760141d54b4</anchor>
      <arglist>(struct osmo_tdef *tdef, unsigned long new_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tdef_range_str_buf</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga88e3725d03ea8ab0edf8013333dfedad</anchor>
      <arglist>(char *buf, size_t buf_len, struct osmo_tdef *t)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_tdef_state_timeout *</type>
      <name>osmo_tdef_get_state_timeout</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga5a7532bad13a88526390b8f3c6db3374</anchor>
      <arglist>(uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_tdef_fsm_inst_state_chg</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0f528b78c3b8875971f0fcbbaa52e1c6</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, const struct osmo_tdef *tdefs, long default_timeout, const char *file, int line)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_tdef_unit_names</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4ad5be5f9d49274b4bce18320cf251b5</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>thread.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>thread_8c.html</filename>
    <includes id="thread_8h" name="thread.h" local="no" imported="no">osmocom/core/thread.h</includes>
    <member kind="function">
      <type>pid_t</type>
      <name>osmo_gettid</name>
      <anchorfile>group__thread.html</anchorfile>
      <anchor>gab13692b0278938fdaf76c8919c842403</anchor>
      <arglist>(void)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>time_cc.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>time__cc_8c.html</filename>
  </compound>
  <compound kind="file">
    <name>timer.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>timer_8c.html</filename>
    <includes id="timer_8h" name="timer.h" local="no" imported="no">osmocom/core/timer.h</includes>
    <includes id="timer__compat_8h" name="timer_compat.h" local="no" imported="no">osmocom/core/timer_compat.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__add_timer</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga372d9a79777dbdec72e7a19476111b63</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_setup</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7d8def422a9bf39b4d5aefa1fec319e0</anchor>
      <arglist>(struct osmo_timer_list *timer, void(*cb)(void *data), void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8eb1bef581081eb105265e56b15945fa</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_schedule</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga93a296b92775fc08c60eb154a3389e5b</anchor>
      <arglist>(struct osmo_timer_list *timer, int seconds, int microseconds)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_del</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga1aa977a3eb2d5b5447b8acd32002b6cf</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timer_pending</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gacf319b1650bff4a8d1536d7557b45563</anchor>
      <arglist>(const struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timer_remaining</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga0e6d99128b6f5e318df78a20c022c068</anchor>
      <arglist>(const struct osmo_timer_list *timer, const struct timeval *now, struct timeval *remaining)</arglist>
    </member>
    <member kind="function">
      <type>struct timeval *</type>
      <name>osmo_timers_nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga5766d10a219da5e6ab283fede26d2e40</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_nearest_ms</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaf7cf25cb666a6c07994b979dc83838fe</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>update_nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga0c625e3072119d895980fefcd207c14d</anchor>
      <arglist>(struct timeval *cand, struct timeval *current)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timers_prepare</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga420626edb507e81884f9842572a83467</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_update</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaf8d555ef1c2e59ed54f0e12e2ee1f41c</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_check</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gada843afa93f84337776c8efc1b539fe3</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct timeval</type>
      <name>nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga6a22a3c698847d0f033bd656e617fc34</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct timeval *</type>
      <name>nearest_p</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga3a61b742c5d1830cf0719b5d8b32ddcf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct rb_root</type>
      <name>timer_root</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8733ce9a99e5a3780ff71baae89a9ccd</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>timer_clockgettime.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>timer__clockgettime_8c.html</filename>
  </compound>
  <compound kind="file">
    <name>timer_gettimeofday.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>timer__gettimeofday_8c.html</filename>
    <includes id="timer__compat_8h" name="timer_compat.h" local="no" imported="no">osmocom/core/timer_compat.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_gettimeofday</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8c559c124f4720d0a54af5f206681049</anchor>
      <arglist>(struct timeval *tv, struct timezone *tz)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_gettimeofday_override_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gafcbae57ab2c2635d0dd248ec3011bd1c</anchor>
      <arglist>(time_t secs, suseconds_t usecs)</arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>osmo_gettimeofday_override</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac10c80c84b5f61c509d36f59de66e42f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct timeval</type>
      <name>osmo_gettimeofday_override_time</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac0b4877db25000054ec9226dc39a7a79</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tun.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>tun_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="select_8h" name="select.h" local="no" imported="no">osmocom/core/select.h</includes>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <includes id="write__queue_8h" name="write_queue.h" local="no" imported="no">osmocom/core/write_queue.h</includes>
    <includes id="socket_8h" name="socket.h" local="no" imported="no">osmocom/core/socket.h</includes>
    <includes id="netns_8h" name="netns.h" local="no" imported="no">osmocom/core/netns.h</includes>
    <includes id="netdev_8h" name="netdev.h" local="no" imported="no">osmocom/core/netdev.h</includes>
    <includes id="tun_8h" name="tun.h" local="no" imported="no">osmocom/core/tun.h</includes>
    <class kind="struct">osmo_tundev</class>
    <member kind="define">
      <type>#define</type>
      <name>TUN_DEV_PATH</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga98bdc6d5a45d3b24e4b3a3ed19cafa0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TUN_PACKET_MAX</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga60304322931dd9d053a88072ca59c875</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGTUN</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga8f4af10f5c20dcb47e517499d5c0c2b2</anchor>
      <arglist>(tun, lvl, fmt, args ...)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_decaps</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab7bb4ad4360d0d0bdb5ccb4659276a1d</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_read_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab4b9fc3bfbaa99ea7aaa4b6630656674</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_write_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga7bb8d07849ef9d7bc1a6d413fecc41d1</anchor>
      <arglist>(struct osmo_fd *fd, struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_ifupdown_ind_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga5d311ac51f718729e227b76e0f9dd474</anchor>
      <arglist>(struct osmo_netdev *netdev, bool ifupdown)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_dev_name_chg_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga1b714e0b4e6a3d45e965fc97fc6fd09d</anchor>
      <arglist>(struct osmo_netdev *netdev, const char *new_dev_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_mtu_chg_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae9508aad437383431d53b14e07286d3b</anchor>
      <arglist>(struct osmo_netdev *netdev, uint32_t new_mtu)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_tundev *</type>
      <name>osmo_tundev_alloc</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga36875a4a026aacc52bf5d45569d2e523</anchor>
      <arglist>(void *ctx, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_free</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaa5a54e97b016d59ed2b03a16491eda76</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_open</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae6ce16c4c73663ae523b4e3a2638d644</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_close</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gad321860ec0c2be297c48d580918c811c</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_tundev_is_open</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga384c5bfc84a2fd78a8730adacd6061d1</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_set_priv_data</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga35fdce0913f5c26802ef2350cd0531ef</anchor>
      <arglist>(struct osmo_tundev *tundev, void *priv_data)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_tundev_get_priv_data</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga73eeb43489a75e38c495a1aabebdf7bf</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_set_data_ind_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab4cc44199ac0b7ab25cd0b3444d76c7d</anchor>
      <arglist>(struct osmo_tundev *tundev, osmo_tundev_data_ind_cb_t data_ind_cb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaae3e8b0fe9f1bc8b6dbfd5b26ef0df2b</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_get_fd</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga841211492d9aeed4f1b0fbe451b42584</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_set_dev_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga58fa0f32b02698e91cdbfff89e44307d</anchor>
      <arglist>(struct osmo_tundev *tundev, const char *dev_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_dev_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga22ef1c28ec0c985e742950ef331270bc</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_set_netns_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae31a6b8fa612faaf21aaa0c339e23e0b</anchor>
      <arglist>(struct osmo_tundev *tundev, const char *netns_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_netns_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaa71cfeea8d70f6527a5c9f8e59c2d790</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_netdev *</type>
      <name>osmo_tundev_get_netdev</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga7787e7fe210d9c7ea62a49042412ac20</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_send</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gabd21998a822758c2de51a029d4378f65</anchor>
      <arglist>(struct osmo_tundev *tundev, struct msgb *msg)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>use_count.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>use__count_8c.html</filename>
    <includes id="linuxlist_8h" name="linuxlist.h" local="no" imported="no">osmocom/core/linuxlist.h</includes>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="use__count_8h" name="use_count.h" local="no" imported="no">osmocom/core/use_count.h</includes>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>count_safe</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gaf2aa74b203011c4359eb13cb886beae7</anchor>
      <arglist>(int32_t *val_p, int32_t add)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_use_count_total</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga34703c11c4da78bebd3322635b57e698</anchor>
      <arglist>(const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_use_count_by</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gae221053a7e938cc89864a29cd72bb971</anchor>
      <arglist>(const struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_use_count_name_buf</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga7b49bfded7003847ba6bcf2e021cb4d9</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_use_count_to_str_buf</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga0a979c7c3979e7cbb0981172c426a00f</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_use_count_to_str_c</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gac2e6c82a4809bae02212a09ce1e22a21</anchor>
      <arglist>(void *ctx, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_use_count_entry *</type>
      <name>osmo_use_count_find</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga0dcc3abaab263ca652b99214f2396298</anchor>
      <arglist>(const struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct osmo_use_count_entry *</type>
      <name>osmo_use_count_repurpose_zero_entry</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga98cee57f336dcd019ccce57563e2b2ea</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct osmo_use_count_entry *</type>
      <name>osmo_use_count_create</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga90705ba109a7da55760fba37c5821817</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_use_count_free</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga7d4005ec0820c11ef960ea966b6baff9</anchor>
      <arglist>(struct osmo_use_count_entry *use_count_entry)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_use_count_get_put</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gad3fc149e66e6f9157843169f27ce571a</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use, int32_t change, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_use_count_make_static_entries</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga1d3601b4f5093407d57ca3f5e1c093cc</anchor>
      <arglist>(struct osmo_use_count *uc, struct osmo_use_count_entry *buf, size_t buf_n_entries)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>utils.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>utils_8c.html</filename>
    <includes id="utils_8h" name="utils.h" local="no" imported="no">osmocom/core/utils.h</includes>
    <includes id="bit64gen_8h" name="bit64gen.h" local="no" imported="no">osmocom/core/bit64gen.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>BACKSLASH_CASE</name>
      <anchorfile>utils_8c.html</anchorfile>
      <anchor>ae812fca8f8365243de0b72bb7885b4be</anchor>
      <arglist>(c, repr)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>get_value_string</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaf5e6416f5d73a1ff2e7bdb0e434d10d7</anchor>
      <arglist>(const struct value_string *vs, uint32_t val)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>get_value_string_or_null</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac44be7d0bc776c31efd951653bcbe0cd</anchor>
      <arglist>(const struct value_string *vs, uint32_t val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>get_string_value</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4df5d6ff3d338b9cf4ca59d2cc884d7f</anchor>
      <arglist>(const struct value_string *vs, const char *str)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>osmo_bcd2char</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaaf78cfb7a88674f118451b9279306c22</anchor>
      <arglist>(uint8_t bcd)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>osmo_char2bcd</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae5cbea0fd5e1594354d115912d46454c</anchor>
      <arglist>(char c)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_bcd2str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga422bbc07222f809d350ad39fb894c803</anchor>
      <arglist>(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str2bcd</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab595e5dac6365b78f85b07bb792da4de</anchor>
      <arglist>(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_hexparse</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa417dc14b499d59106491b55a1c74b62</anchor>
      <arglist>(const char *str, uint8_t *b, unsigned int max_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_hexdump_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2dd24d5b9cab288e90a2067c8dbc9a78</anchor>
      <arglist>(char *out_buf, size_t out_buf_size, const unsigned char *buf, int len, const char *delim, bool delim_after_last)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_ubit_dump_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga48a25995cfdcb169407c0285e318b5ab</anchor>
      <arglist>(char *buf, size_t buf_len, const uint8_t *bits, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_ubit_dump</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5df14e6f8be6d0581b9ef9138b8cc85f</anchor>
      <arglist>(const uint8_t *bits, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadfc3801536ff055305f7b2563539237f</anchor>
      <arglist>(const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae0e18c985d66a2affda7e8ab54a13f9e</anchor>
      <arglist>(const void *ctx, const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_nospc</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga58cacabcd4862f29a9aa57dd2627c976</anchor>
      <arglist>(const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_nospc_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaedfb568cb4c765446cc1beab4db24b5c</anchor>
      <arglist>(const void *ctx, const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_osmo_hexdump_nospc</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8c02a287e85ffb5defb781447366b8b3</anchor>
      <arglist>(const unsigned char *buf, int len) __attribute__((__deprecated__))</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>alias</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadc9804584fe701ac5eebf9f091f45314</anchor>
      <arglist>(&quot;osmo_hexdump_nospc&quot;)))</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_constant_time_cmp</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9617b49a3abc34328ce8fa3eafcdc938</anchor>
      <arglist>(const uint8_t *exp, const uint8_t *rel, const int count)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>osmo_decode_big_endian</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga527e54191de66b00edd22500017da9ad</anchor>
      <arglist>(const uint8_t *data, size_t data_len)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t *</type>
      <name>osmo_encode_big_endian</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab461793c9157461119e621710f3f340c</anchor>
      <arglist>(uint64_t value, size_t data_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strlcpy</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2e880620479e4b79e28cc817cf451f9c</anchor>
      <arglist>(char *dst, const char *src, size_t siz)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strnchr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3a809d9d2539c0bb3683ae4f0d16decc</anchor>
      <arglist>(const char *str, size_t str_size, char c)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_is_hexstr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab40f5a73ddd1f2c641ed0da0ca08093d</anchor>
      <arglist>(const char *str, int min_digits, int max_digits, bool require_even)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_separated_identifiers_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gabac697c1ef493cb5691eb5f11c4af984</anchor>
      <arglist>(const char *str, const char *sep_chars)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_identifier_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadfd0a4c05af8693393a7d0afa6899ff3</anchor>
      <arglist>(const char *str)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_identifier_sanitize_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga7165f91d0b488d150f8ba3bc83cba590</anchor>
      <arglist>(char *str, const char *sep_chars, char replace_with)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_escape_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad3cf1d094e625a962737b4ba9c2a5632</anchor>
      <arglist>(const char *str, int in_len, char *buf, size_t bufsize)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_print_n</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga412b892efd1aa17d024863cd103f3fbc</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, size_t n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>_osmo_escape_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa273befac18c6df037af4e01e8fd1cd7</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len, bool legacy_format)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_escape_str_buf3</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6b4866958eb385b561fc1fa91db242e7</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_str_buf2</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab6d6c37d5cc2807eb63b41498f38fb9d</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_escape_str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab9fb9032407e96924732bf60f4476195</anchor>
      <arglist>(const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga46ac4f967deb6a2e8c4a1930273bfbbd</anchor>
      <arglist>(const void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>_osmo_quote_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaede6980e9fac6f132c8b7a80fa0311bb</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len, bool legacy_format)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_quote_str_buf3</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaad5dccba528c2ea4f9156dc61539ce79</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_str_buf2</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4f3b36bc5fd6e474f7f4caa67eb966c2</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_quote_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad5c8e9dbe2d66556fde2a49418d2db89</anchor>
      <arglist>(const char *str, int in_len, char *buf, size_t bufsize)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_quote_str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab25c98708ddc0828695a54a72c711b62</anchor>
      <arglist>(const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga333f103771c3b46336103b57e2bc047c</anchor>
      <arglist>(const void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_escape_cstr_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab2348926540f8c8a56f4e6a17c996f7f</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_cstr_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab8a8241576fe2a82726e0ac2d2e624f5</anchor>
      <arglist>(void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_quote_cstr_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga20f2471a0f60241c8e63c9ee18217b41</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_cstr_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga26e74d38fd7a65f5a6ea35161c656e90</anchor>
      <arglist>(void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_isqrt32</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga96865bcbbc856166d1b0fbbd00bb9e38</anchor>
      <arglist>(uint32_t x)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_str_tolower_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8912910863d88f52b9d62220ee66feed</anchor>
      <arglist>(char *dest, size_t dest_len, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_str_tolower</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad40fab125b7c9f19ef1789f299a7617d</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_str_tolower_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga20e4677fb667ab35e8cdc556f46f0043</anchor>
      <arglist>(const void *ctx, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_str_toupper_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga7134740c825b2f4b604e825aa6f06c58</anchor>
      <arglist>(char *dest, size_t dest_len, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_str_toupper</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga02a608b84c87fa5cd65dcefc4c56b552</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_str_toupper_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga26450c1810f5f49e46865c9ea16737c0</anchor>
      <arglist>(const void *ctx, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>osmo_luhn</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga780f2653cc84daa994053e5f54349057</anchor>
      <arglist>(const char *in, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_strbuf_drop_tail</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2f3bd04cb9d1371b4e1b3ff0029f7238</anchor>
      <arglist>(struct osmo_strbuf *sb, size_t n_chars)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_strbuf_added_tail</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1b89d94b3562b0b3261aff7c1ce4c395</anchor>
      <arglist>(struct osmo_strbuf *sb, size_t n_chars)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_str_startswith</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4a6c1ebef675be298cab13bb226e5baa</anchor>
      <arglist>(const char *str, const char *startswith_str)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_float_str_to_int</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae0fa80cc1a996386d83a5ebb2d57f8b</anchor>
      <arglist>(int64_t *val, const char *str, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_int_to_float_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gafbbe67276ab1495e5d05eed369e65d92</anchor>
      <arglist>(char *buf, size_t buflen, int64_t val, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_int_to_float_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga89e052fb363e9a8b00a686c6f3db0126</anchor>
      <arglist>(void *ctx, int64_t val, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str_to_int64</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga503b0048081b15fd438bedce2173d5db</anchor>
      <arglist>(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str_to_int</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4f16a335e3ab7c88595b23acfd7c6693</anchor>
      <arglist>(int *result, const char *str, int base, int min_val, int max_val)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_talloc_replace_string_fmt</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3c2b44ccd3575ebf985c63fab6158cd6</anchor>
      <arglist>(void *ctx, char **dst, const char *fmt,...)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread char</type>
      <name>namebuf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga42e7a63c73abd5c30aee0ee87ed6e11a</anchor>
      <arglist>[255]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread char</type>
      <name>capsbuf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad408aac8db7d8f74ea76b6012d9c3724</anchor>
      <arglist>[128]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread char</type>
      <name>hexd_buff</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae2778983d0cf60080bb3232e764704a2</anchor>
      <arglist>[4096]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const char</type>
      <name>hex_chars</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga88e2bcf3138cbb40f80836c959476257</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const char</type>
      <name>osmo_identifier_illegal_chars</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga46a5e6d68d174e66705e6a5ab3068166</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>write_queue.c</name>
    <path>/build/_osmocom_api/libosmocore/src/core/</path>
    <filename>write__queue_8c.html</filename>
    <includes id="write__queue_8h" name="write_queue.h" local="no" imported="no">osmocom/core/write_queue.h</includes>
    <includes id="logging_8h" name="logging.h" local="no" imported="no">osmocom/core/logging.h</includes>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_bfd_cb</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga56bb1b9d13a946be09fdbf400545d7ad</anchor>
      <arglist>(struct osmo_fd *fd, unsigned int what)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_wqueue_init</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>gacca6343dd66b8cac8a5055b2a16eb990</anchor>
      <arglist>(struct osmo_wqueue *queue, int max_length)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_enqueue_quiet</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga7d4207497c2a2852f98ecf805424a504</anchor>
      <arglist>(struct osmo_wqueue *queue, struct msgb *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_enqueue</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga9855de966a4f01d6df3a747422b02824</anchor>
      <arglist>(struct osmo_wqueue *queue, struct msgb *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_wqueue_clear</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga833b4f5244c00c775260a83e9918073c</anchor>
      <arglist>(struct osmo_wqueue *queue)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_wqueue_set_maxlen</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga662e3311b8f57f2cbc0fbe741462dbca</anchor>
      <arglist>(struct osmo_wqueue *queue, unsigned int len)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>bitvec</name>
    <filename>structbitvec.html</filename>
    <member kind="variable">
      <type>unsigned int</type>
      <name>cur_bit</name>
      <anchorfile>structbitvec.html</anchorfile>
      <anchor>aa6c6cf57a33f5eb585d1da0ef3c285bb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>data_len</name>
      <anchorfile>structbitvec.html</anchorfile>
      <anchor>ac82f755e1d09a781ddd2ca9c12a5109a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t *</type>
      <name>data</name>
      <anchorfile>structbitvec.html</anchorfile>
      <anchor>a8c4395d822b1ca6de6c619d652fcb601</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gsmtap_hdr</name>
    <filename>structgsmtap__hdr.html</filename>
    <member kind="variable">
      <type>uint8_t</type>
      <name>version</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a565b128cd19ec40c435bd4540ba9df8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>hdr_len</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a8fb686054baf3622f7fb45aec0245986</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>type</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a844ce29629ea9925ccf6ae7029d80dd8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>timeslot</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a51812157bbd2a012f8e4a09f1ff82c71</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>arfcn</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>ab6c41886100938190f399b11b01951e7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int8_t</type>
      <name>signal_dbm</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a088b1333ae244779d803c946abc7e7a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int8_t</type>
      <name>snr_db</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a34ea047bde5efc0e52e054a9f36d8250</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>frame_number</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a3208b2aefe6cc7d07014540f122e77e4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sub_type</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>ae8b3cb3b4b1bc32e113a4fb1fc66988f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>antenna_nr</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a974a19308eebb8d042313051b88b7db5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sub_slot</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a6ef64a365ab61e88e8465c62e3d30312</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>res</name>
      <anchorfile>structgsmtap__hdr.html</anchorfile>
      <anchor>a628c9e41f24b1a7013235ce5aff1e470</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gsmtap_inst</name>
    <filename>structgsmtap__inst.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>osmo_io_mode</name>
      <anchorfile>structgsmtap__inst.html</anchorfile>
      <anchor>a7fe635c4078e0c6566e18e853ef16371</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>source_fd</name>
      <anchorfile>structgsmtap__inst.html</anchorfile>
      <anchor>a1023b915308a780148713fef149c5f7f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd *</type>
      <name>out</name>
      <anchorfile>structgsmtap__inst.html</anchorfile>
      <anchor>ad390464fdc4dfd3406b8135e10411390</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>sink_fd</name>
      <anchorfile>structgsmtap__inst.html</anchorfile>
      <anchor>a423830303da2b3c271111c758b47b73e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gsmtap_osmocore_log_hdr</name>
    <filename>structgsmtap__osmocore__log__hdr.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>sec</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>ac6d0f21c1f50be27eedf8f338d625123</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>usec</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>ac132063d36eda0a793af6f53cd06a0dd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gsmtap_osmocore_log_hdr::@4</type>
      <name>ts</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>a98f006abc829fb0ada57dd3aa2fd6d7e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>proc_name</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>ad12f240a47948da12650fcdf95c4d304</anchor>
      <arglist>[16]</arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>pid</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>a07109f3a0445c18ee2d9a223a214d353</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>level</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>afa6580ce759da59203e7cd9cdd04712a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>_pad</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>a53224fff24aaf8481a0f3364f8ef84f9</anchor>
      <arglist>[3]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>subsys</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>a91d10c065c8d320aa68afe791a0b1774</anchor>
      <arglist>[16]</arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>name</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>abc8a1fd4f11d9e866df6a9a68842a593</anchor>
      <arglist>[32]</arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>line_nr</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>a3e42ac4a056ff779207a3cd22e56db08</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gsmtap_osmocore_log_hdr::@5</type>
      <name>src_file</name>
      <anchorfile>structgsmtap__osmocore__log__hdr.html</anchorfile>
      <anchor>aff371ee2563599a19301f984fba23f75</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>hlist_head</name>
    <filename>structhlist__head.html</filename>
    <member kind="variable">
      <type>struct hlist_node *</type>
      <name>first</name>
      <anchorfile>structhlist__head.html</anchorfile>
      <anchor>a247198a722f93022121b73aee62006bb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>hlist_node</name>
    <filename>structhlist__node.html</filename>
    <member kind="variable">
      <type>struct hlist_node *</type>
      <name>next</name>
      <anchorfile>structhlist__node.html</anchorfile>
      <anchor>a915ba19b2ab3aa3f092edc8d5ed98c27</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct hlist_node **</type>
      <name>pprev</name>
      <anchorfile>structhlist__node.html</anchorfile>
      <anchor>a47d5ab1ce59648e62dae64c49553e61a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>iofd_backend_ops</name>
    <filename>structiofd__backend__ops.html</filename>
    <member kind="variable">
      <type>int(*</type>
      <name>setup</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a8f814dae7dd71373f12fe53c89a278b4</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>register_fd</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a9b8a6544d90f5c996fc44cfaa29f750b</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>unregister_fd</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>acb5cbe1089a2d77286bfc4f27736c20e</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>close</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a87c5fba9d800904dff02a5a8715e3c0a</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>write_enable</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a17f43a536b5cd742d8174bbe2145e18f</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>write_disable</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a70206d1813ac3d4d8b94c4019f20248e</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>read_enable</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a018d3953286432c9d16c0753e977bbec</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>read_disable</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>a610caf7ecaadf455baa27db2d6e87e47</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>notify_connected</name>
      <anchorfile>structiofd__backend__ops.html</anchorfile>
      <anchor>ab6a115687b4805647df92e925757cc5a</anchor>
      <arglist>)(struct osmo_io_fd *iofd)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>iofd_msghdr</name>
    <filename>structiofd__msghdr.html</filename>
    <member kind="function">
      <type>char</type>
      <name>_Alignas</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>a2ec90152b81def08a22a866a667b2eb2</anchor>
      <arglist>(struct cmsghdr) cmsg[0]</arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>a0dfbe11ea42c9518405b45147ab2fee1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum iofd_msg_action</type>
      <name>action</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>a3bf8f4a1f8e47093a7440bc344f0450e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct msghdr</type>
      <name>hdr</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>abed8f13020d302064dfc1f22f1247c8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sockaddr</type>
      <name>osa</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>ada7e6f56c63ed3fcb30ec97bf75903e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct iovec</type>
      <name>iov</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>af46dfde0c0e6d68a89fac32028c3c6f1</anchor>
      <arglist>[IOFD_MSGHDR_IO_BUFFERS]</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>flags</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>a23bf1102e388cb2dc93a55d8d1f7fdf6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>io_len</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>a3c811284d968946ce6ce71d41ab5ab4e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct msgb *</type>
      <name>msg</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>ae51f073747406d461f69a8f6d2e7f7b0</anchor>
      <arglist>[IOFD_MSGHDR_IO_BUFFERS]</arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd *</type>
      <name>iofd</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>a0c84222c2eaef3f466fd1e3a52402d48</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>in_cancel_queue</name>
      <anchorfile>structiofd__msghdr.html</anchorfile>
      <anchor>aeb7973e19df13ad6ae31bf6cc5c25d3c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>llist_head</name>
    <filename>structllist__head.html</filename>
    <member kind="variable">
      <type>struct llist_head *</type>
      <name>next</name>
      <anchorfile>structllist__head.html</anchorfile>
      <anchor>a9a6ee80976fe50c0c52c96dae6f1701b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head *</type>
      <name>prev</name>
      <anchorfile>structllist__head.html</anchorfile>
      <anchor>afd9f989105cb76e5b8d5cbbdf0557fb4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>log_category</name>
    <filename>structlog__category.html</filename>
    <member kind="variable">
      <type>uint8_t</type>
      <name>loglevel</name>
      <anchorfile>structlog__category.html</anchorfile>
      <anchor>ac77af6d28f706991eb12b814f3b47423</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>enabled</name>
      <anchorfile>structlog__category.html</anchorfile>
      <anchor>a2b6b14933db8691dad704a58e8c24b9a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>log_context</name>
    <filename>structlog__context.html</filename>
    <member kind="function">
      <type>void *ctx[LOG_MAX_CTX+1]</type>
      <name>OSMO_DEPRECATED_OUTSIDE</name>
      <anchorfile>structlog__context.html</anchorfile>
      <anchor>a595edb4bc9065cb7e932e7635f490eca</anchor>
      <arglist>(&quot;Accessing struct log_context members directly is deprecated&quot;)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>log_info</name>
    <filename>structlog__info.html</filename>
    <member kind="variable">
      <type>log_filter *</type>
      <name>filter_fn</name>
      <anchorfile>structlog__info.html</anchorfile>
      <anchor>ac34134fd6a2e1f737e81e47778d51010</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct log_info_cat *</type>
      <name>cat</name>
      <anchorfile>structlog__info.html</anchorfile>
      <anchor>ad04cfc6b8275c1f4c863277b3734d838</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>num_cat</name>
      <anchorfile>structlog__info.html</anchorfile>
      <anchor>a06e0834d4cb1ae15804a0ecc8f4e5425</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>num_cat_user</name>
      <anchorfile>structlog__info.html</anchorfile>
      <anchor>aecf62f5d344271f7f21c17517a807b11</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>log_save_filters *</type>
      <name>save_fn</name>
      <anchorfile>structlog__info.html</anchorfile>
      <anchor>a6e734e6630e6ecaab2d50be1237f0517</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>log_print_filters *</type>
      <name>print_fn</name>
      <anchorfile>structlog__info.html</anchorfile>
      <anchor>a26d712e8561e82edb8fafc642596f455</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>log_info_cat</name>
    <filename>structlog__info__cat.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structlog__info__cat.html</anchorfile>
      <anchor>a645532720e9104de555e2fc65152e5d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>color</name>
      <anchorfile>structlog__info__cat.html</anchorfile>
      <anchor>a9e0b8a28f5de6e8d89c08e5a8200af9c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>description</name>
      <anchorfile>structlog__info__cat.html</anchorfile>
      <anchor>a79cbc6a72c6a0a6d14e5cfb6d53e8d16</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>loglevel</name>
      <anchorfile>structlog__info__cat.html</anchorfile>
      <anchor>aae2b65cb7b3ae1478261006f1cf8197f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>enabled</name>
      <anchorfile>structlog__info__cat.html</anchorfile>
      <anchor>a61058d0f4a253519c6a5192781a687d5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>log_target</name>
    <filename>structlog__target.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a2ef53abf794aa816b027560673c8ff6e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int filter_map</type>
      <name>OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE_LOG_TARGET</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a6fe8b91ed45b1a84ffc4ee9a226cb1d7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *filter_data[LOG_MAX_FILTERS+1]</type>
      <name>OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE_LOG_TARGET</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>ae859b103d76c993418c0fb4656ea47f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_category *</type>
      <name>categories</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a2d9445dcd37557bfd51ef3bd2cfea72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>loglevel</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>afcc8cbf5fc63a86077d7fb0e13bcd807</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>use_color</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a834d7c95d56266ae322f19a3b0381ec4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>print_timestamp</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a0fcc68c7f1db7a2be635eaac57eefdf8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>print_tid</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a2e36745936717a7c9639b341f5f630d9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>print_filename</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a60e15401b2499ecf5e1b19d4cfde249f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>print_category</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>aa6eb21fb3a39815e6fb6d072bb18ded3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>print_ext_timestamp</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a9798b19dfea4594dde0f8d183dd1c0c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum log_target_type</type>
      <name>type</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>aa7c4ac96bb8d768ebd5312f74d5fd26a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>FILE *</type>
      <name>out</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>ac8ee0a882342484cd9677c42d92631bc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>fname</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>aa5bb6f9bd13aa6bde09d52451ace29e4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_wqueue *</type>
      <name>wqueue</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a42fc478c3f6126d6c8de3c18acffc65e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_target::@8::@10</type>
      <name>tgt_file</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a2dcfb425c09ab9735cfee37585900487</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>priority</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a0d6938973ae685ab2d24d73dcc7e2a06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>facility</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a596d976fd0ae8d6eb5d76418f77c881e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_target::@8::@11</type>
      <name>tgt_syslog</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>ab68cae9f8a626831cf360c3ba918d5a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>vty</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a12ff87c478629e0a489cd5dd7f5fe51c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_target::@8::@12</type>
      <name>tgt_vty</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a8b176b6ff0ebdc59e4d37903489cd120</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>rb</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a99023ffc2b1088b4790fa7b91287af18</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_target::@8::@13</type>
      <name>tgt_rb</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a94df7fe6e54cb86e40ca2ce34c0d29ae</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gsmtap_inst *</type>
      <name>gsmtap_inst</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a736acc6de083e103669fa150f8db9a86</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>ident</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>ae12fd4a3f15470337128812897ddc750</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>hostname</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>ad8ea9ba8140fb5fcb8c9d025f2a56557</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_target::@8::@14</type>
      <name>tgt_gsmtap</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a2b509af68d1d55545697a46d0f880412</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>raw</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>aa1580338e8fa9db71b18a3d569248f46</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_target::@8::@15</type>
      <name>sd_journal</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a2396bc1fecfcc5c67fd2b7bd4aa5f7d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>output</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>afbd749ebfccf636f4f1d040dfdcad822</anchor>
      <arglist>)(struct log_target *target, unsigned int level, const char *string)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>raw_output</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a4b9b00a4ab83f001fe9b9114a3750967</anchor>
      <arglist>)(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>print_level</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>ad8a0b357d890aeb16ea77cea915389c4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>print_category_hex</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a0a8c5ea7c910e3226bcee508ccc1d6b0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum log_filename_type</type>
      <name>print_filename2</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a45dac9b9d4844f7ecc551e7ec1e28add</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum log_filename_pos</type>
      <name>print_filename_pos</name>
      <anchorfile>structlog__target.html</anchorfile>
      <anchor>a5dba5146de599e2f72aedda73794fc68</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>log_thread_state</name>
    <filename>structlog__thread__state.html</filename>
    <member kind="variable">
      <type>bool</type>
      <name>logging_active</name>
      <anchorfile>structlog__thread__state.html</anchorfile>
      <anchor>a08cf7ce290f3cc729b7ed4964c40fb4e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>long int</type>
      <name>tid</name>
      <anchorfile>structlog__thread__state.html</anchorfile>
      <anchor>af706a289c825b6c5ebcc20e704228c48</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>msgb</name>
    <filename>structmsgb.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>adf938257627add0f055a45a206b2a451</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>dst</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a3f5d086ad586cfcb8c805b152befa9a1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gsm_bts_trx *</type>
      <name>trx</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>aa5d3dd9938edbc55c5dbc0472f364df7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gsm_lchan *</type>
      <name>lchan</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a61f8ce8f46dafe4f0d327beea9153098</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>l1h</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>afcf0eda8d8acc8744a3e0d7b29c0d99a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>l2h</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a078a458fb0d6f2dd10a95cb1344ad385</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>l3h</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a6bffebeedd2a24ecafd656cf6136a1eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>l4h</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>aba32a66d2e545ceed675bbba031ad5fc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>cb</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a031626e62e3cd95929910a78b58e27a8</anchor>
      <arglist>[5]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>data_len</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>ad9e56fcc205b34f6ae481b64c197b44d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>len</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a14fb7865aeb5b81cb00e9c643c29a810</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>head</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>afb91181f130ef44fea8cacd94bf2d516</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>tail</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a8caeb3b88050ba337edde4fd90741d85</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char *</type>
      <name>data</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a3a36fd9330070d1e56d0503dde190803</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned char</type>
      <name>_data</name>
      <anchorfile>structmsgb.html</anchorfile>
      <anchor>a61fa77b4345e3a6db6d58a39c5e83177</anchor>
      <arglist>[0]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>netdev_netns_ctx</name>
    <filename>structnetdev__netns__ctx.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structnetdev__netns__ctx.html</anchorfile>
      <anchor>a3ea7855d1b6720c22525babff170ffe2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>refcount</name>
      <anchorfile>structnetdev__netns__ctx.html</anchorfile>
      <anchor>acca9c6019b44150964bb3e48239c8edc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>netns_name</name>
      <anchorfile>structnetdev__netns__ctx.html</anchorfile>
      <anchor>af0d06a7f25fc0c26f33676db49c4f65c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>netns_fd</name>
      <anchorfile>structnetdev__netns__ctx.html</anchorfile>
      <anchor>a846086ff2945c6015407bc09e06ab797</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_config_entry</name>
    <filename>structosmo__config__entry.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__config__entry.html</anchorfile>
      <anchor>a40cab36b8737f86b8087628b503af60f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>nr</name>
      <anchorfile>structosmo__config__entry.html</anchorfile>
      <anchor>a69450209e0eed0a615fd639e58502ace</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>mcc</name>
      <anchorfile>structosmo__config__entry.html</anchorfile>
      <anchor>ac8e4f3492679d89b93c1196390374bdc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>mnc</name>
      <anchorfile>structosmo__config__entry.html</anchorfile>
      <anchor>a5bf3dedeaf6364dca7fc5fc1041e1734</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>option</name>
      <anchorfile>structosmo__config__entry.html</anchorfile>
      <anchor>a1fd91cf6c45486ddade426efdf4e11cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>text</name>
      <anchorfile>structosmo__config__entry.html</anchorfile>
      <anchor>abbe348a0a34973110d7bc1450438c0aa</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_config_list</name>
    <filename>structosmo__config__list.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structosmo__config__list.html</anchorfile>
      <anchor>a6e0b8b9c1ad59a0eae842c384b3529cf</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_conv_code</name>
    <filename>structosmo__conv__code.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>N</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>a5867f142a7bcac29877c8fadd0fe6642</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>K</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>ac4ccdcc30c6e8b8da51d3114f9efb4b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>a204fd8fe2393cb0addfa7cf2575d3e7c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_conv_term</type>
      <name>term</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>aa024e6740f580b70e83f37b8cc7ac642</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t(*</type>
      <name>next_output</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>a433ea7a5d933a69d3e1ada68541da1ca</anchor>
      <arglist>)[2]</arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t(*</type>
      <name>next_state</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>ad72a9be2805d8d3991fb62e9e470c628</anchor>
      <arglist>)[2]</arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t *</type>
      <name>next_term_output</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>ad33a7333e2e298c1cfb17c85f9f04bf8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t *</type>
      <name>next_term_state</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>a4746a836dc1fa382232934abd6b57590</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const int *</type>
      <name>puncture</name>
      <anchorfile>structosmo__conv__code.html</anchorfile>
      <anchor>aa5f7e2e09375acddbe45ba32f8f5f6bb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_conv_decoder</name>
    <filename>structosmo__conv__decoder.html</filename>
    <member kind="variable">
      <type>const struct osmo_conv_code *</type>
      <name>code</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>a06a08f6364190cc3372d4dd8e8edc35e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>n_states</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>ad8419dca2f723151b2c73caecfdac4ef</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>a6b6df881f269283f7f22c2c376d8bb5e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>o_idx</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>ad0cbf7d8ea3959263799d5ed3953af07</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>p_idx</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>af892f06324a84366be9334be3f30f7f5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int *</type>
      <name>ae</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>a34ca8e6d442c82ab60eff2b5816b1826</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int *</type>
      <name>ae_next</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>a8b4b0e48a2769843a7eb6d70b6f23991</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t *</type>
      <name>state_history</name>
      <anchorfile>structosmo__conv__decoder.html</anchorfile>
      <anchor>a0d1b911d79d9982dc7c34afa2dd71e04</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_conv_encoder</name>
    <filename>structosmo__conv__encoder.html</filename>
    <member kind="variable">
      <type>const struct osmo_conv_code *</type>
      <name>code</name>
      <anchorfile>structosmo__conv__encoder.html</anchorfile>
      <anchor>a53a8829c143b92324a499cd0ccd2fd41</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>i_idx</name>
      <anchorfile>structosmo__conv__encoder.html</anchorfile>
      <anchor>ac758c0076704c0474f3e1c0a1a634297</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>p_idx</name>
      <anchorfile>structosmo__conv__encoder.html</anchorfile>
      <anchor>a9110ebfabaeb63ebc06ccb771963216f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>state</name>
      <anchorfile>structosmo__conv__encoder.html</anchorfile>
      <anchor>a67e8ab53f1d1fba894a29eeb95817cf2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_counter</name>
    <filename>structosmo__counter.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__counter.html</anchorfile>
      <anchor>a1dda9483fdc4055e8a490f3c1580313b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__counter.html</anchorfile>
      <anchor>a472224f314cd5c768e5ff8f7ba731fd9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>description</name>
      <anchorfile>structosmo__counter.html</anchorfile>
      <anchor>a1fe029b3ade139c8892b69bde8265b31</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>value</name>
      <anchorfile>structosmo__counter.html</anchorfile>
      <anchor>a92197ea8d26e2e8df887181a0575745f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>previous</name>
      <anchorfile>structosmo__counter.html</anchorfile>
      <anchor>ae107f2916bc102af597826a6cc669f12</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_crc16gen_code</name>
    <filename>structosmo__crc16gen__code.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>bits</name>
      <anchorfile>structosmo__crc16gen__code.html</anchorfile>
      <anchor>a96292309cf771e1086f86ccfd4bac9b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>poly</name>
      <anchorfile>structosmo__crc16gen__code.html</anchorfile>
      <anchor>aedd08f5b95d016f3f09fc8bd7941c4e3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>init</name>
      <anchorfile>structosmo__crc16gen__code.html</anchorfile>
      <anchor>aecf697df2c87f82d77273fc3170f06b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>remainder</name>
      <anchorfile>structosmo__crc16gen__code.html</anchorfile>
      <anchor>aeff1e62578a8f7b2474aa8765b9b874d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_crc32gen_code</name>
    <filename>structosmo__crc32gen__code.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>bits</name>
      <anchorfile>structosmo__crc32gen__code.html</anchorfile>
      <anchor>ab7ea0542721265f02d540fc95fb48fda</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>poly</name>
      <anchorfile>structosmo__crc32gen__code.html</anchorfile>
      <anchor>a38fbc53e41d3181a2123c62253f9ee25</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>init</name>
      <anchorfile>structosmo__crc32gen__code.html</anchorfile>
      <anchor>ad139d035aff276d724db17c41b2147d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>remainder</name>
      <anchorfile>structosmo__crc32gen__code.html</anchorfile>
      <anchor>aa0fc5a5c0a648855bae5d975fc8829c1</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_crc64gen_code</name>
    <filename>structosmo__crc64gen__code.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>bits</name>
      <anchorfile>structosmo__crc64gen__code.html</anchorfile>
      <anchor>a564630c90a1088175bb62126f7c9b0c3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>poly</name>
      <anchorfile>structosmo__crc64gen__code.html</anchorfile>
      <anchor>abef85ea259654d573330a1fad0b7f969</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>init</name>
      <anchorfile>structosmo__crc64gen__code.html</anchorfile>
      <anchor>a73757c2782b9d2e48a64a7d53ea605c3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>remainder</name>
      <anchorfile>structosmo__crc64gen__code.html</anchorfile>
      <anchor>a432d6a569fd5d86bb80a7f6fe9c954e4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_crc8gen_code</name>
    <filename>structosmo__crc8gen__code.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>bits</name>
      <anchorfile>structosmo__crc8gen__code.html</anchorfile>
      <anchor>a9a2de2bd7a3809d82b83a25641129520</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>poly</name>
      <anchorfile>structosmo__crc8gen__code.html</anchorfile>
      <anchor>a40cbd268cfea5c97f8380def8fd7baf2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>init</name>
      <anchorfile>structosmo__crc8gen__code.html</anchorfile>
      <anchor>ade3db78e0cda5fdae402c734d5977f1f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>remainder</name>
      <anchorfile>structosmo__crc8gen__code.html</anchorfile>
      <anchor>afe19aa4b075e3438d90c7ba46542d779</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_fd</name>
    <filename>structosmo__fd.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__fd.html</anchorfile>
      <anchor>a76a7fd05e66918c0c130deeaeb017d0f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>fd</name>
      <anchorfile>structosmo__fd.html</anchorfile>
      <anchor>a0468421e6311734f4c8566eeebf8f137</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>when</name>
      <anchorfile>structosmo__fd.html</anchorfile>
      <anchor>a7ddfa2c0a7a590bd162fa0cd359c18ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>cb</name>
      <anchorfile>structosmo__fd.html</anchorfile>
      <anchor>a7a7294408590a34be4396ae14be5604d</anchor>
      <arglist>)(struct osmo_fd *fd, unsigned int what)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>data</name>
      <anchorfile>structosmo__fd.html</anchorfile>
      <anchor>aac6e436124d82cfc17e88b469c6fece8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>priv_nr</name>
      <anchorfile>structosmo__fd.html</anchorfile>
      <anchor>aac54e6c53e7849307d889f9b340b5bd4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_fsm</name>
    <filename>structosmo__fsm.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>ab63b138bf1a2e312550bcb51d506d88d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>instances</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>ad04c105e90567c046a66d765b89eb161</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>aa3215ebcca24a6c602ef97a511fcd43c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_fsm_state *</type>
      <name>states</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>ada097b667d070e4f4607789eae6939ca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>num_states</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>a5ab2bda4fb7101994dd39091611efe8e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>allstate_event_mask</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>a05e7c1a452e38f5a1b649e5ed5d251a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>allstate_action</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>a53c65415a0504d5555ea9805d4645c74</anchor>
      <arglist>)(struct osmo_fsm_inst *fi, uint32_t event, void *data)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>cleanup</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>a9c0e8332d336f91f59bf82d52f82792c</anchor>
      <arglist>)(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>timer_cb</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>a53fd6ecbddbbed54abbcb57c62584389</anchor>
      <arglist>)(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>log_subsys</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>a6efbe1edfc3be37aba184f9272005221</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string *</type>
      <name>event_names</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>ab1a1382fd1fcfb58c18e982389e97008</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>pre_term</name>
      <anchorfile>structosmo__fsm.html</anchorfile>
      <anchor>aca95aca80b364dc3eede7a155529c0ec</anchor>
      <arglist>)(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_fsm_inst</name>
    <filename>structosmo__fsm__inst.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a8697eec3c65ea86722a365c4bbfccce6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fsm *</type>
      <name>fsm</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a1679efdf9764bfbe73e3f9d68b7f7c17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>id</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a46131006a3d4af6ba930c447640ac76b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a21f7869e25f9f5f28c06874e790f1fa6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>priv</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a38f937407279a5cda548aa15f56daa25</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>log_level</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a28f2a18f5f8273fea096d6ff3aa503f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>state</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a5acdbbce60516c82373bd50cf4627b44</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>T</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a8c1856de9383574623e1107067c3f156</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_timer_list</type>
      <name>timer</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>af5030c02d805d27b71084d4ccc18a0fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fsm_inst *</type>
      <name>parent</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a04fc6b4d809e7a7a2b6a7c9f4700d5ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>parent_term_event</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>abef9d98f2804707f16235b3afae182e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>children</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>aca771c55413043b0c4cff2a4cada4fd2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>child</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a62f9d32cea45f8c821d29a48d9e9542c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>terminating</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a9c8ce232a1162f38a2e9c5cb7583520d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fsm_inst::@0</type>
      <name>proc</name>
      <anchorfile>structosmo__fsm__inst.html</anchorfile>
      <anchor>a6f45e68989107d7dc41901902390c51e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_fsm_state</name>
    <filename>structosmo__fsm__state.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>in_event_mask</name>
      <anchorfile>structosmo__fsm__state.html</anchorfile>
      <anchor>a7fbe64b27d00983d03ec97e8c071485e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>out_state_mask</name>
      <anchorfile>structosmo__fsm__state.html</anchorfile>
      <anchor>a337245a1dbd105a35c350ca49e3c563c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__fsm__state.html</anchorfile>
      <anchor>a33fc6f9c48f451ca2597012298484a13</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>action</name>
      <anchorfile>structosmo__fsm__state.html</anchorfile>
      <anchor>aa7d3a336d4e6c8dc4432b55e0f748b24</anchor>
      <arglist>)(struct osmo_fsm_inst *fi, uint32_t event, void *data)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>onenter</name>
      <anchorfile>structosmo__fsm__state.html</anchorfile>
      <anchor>a0909d985327751cb328f6f4bd81f1f94</anchor>
      <arglist>)(struct osmo_fsm_inst *fi, uint32_t prev_state)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>onleave</name>
      <anchorfile>structosmo__fsm__state.html</anchorfile>
      <anchor>addc7dbe5636767155a6bb4e1842e271e</anchor>
      <arglist>)(struct osmo_fsm_inst *fi, uint32_t next_state)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_io_fd</name>
    <filename>structosmo__io__fd.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a93750af36d608cf1d894114ac4caae1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>fd</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ae4105adcc04d3423d489ea4a6a1ee76c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_io_fd_mode</type>
      <name>mode</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a9010665e5a9acb070a111d0953be8360</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>flags</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a1be0f2518b2491bced3bc149fb4a6bac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a90b320d50581f9c4484406477ce1212a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_ops</type>
      <name>io_ops</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>aeb5665cca4207f3c8f3de690d292e376</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct msgb *</type>
      <name>pending</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a4447413cf79fb318796546dab9817844</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>data</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>aed3261fb71ffa29f7563c943c4c21bf6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>priv_nr</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>af090fe2bb7ea35d1d7284214fd1977f5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>cmsg_size</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>aa7166045d288e12b889f1f398eeb4923</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>io_read_buffers</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>aeb12457f028e949f552f92d214c2a86c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>io_write_buffers</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>aad62f65ad80b32cd83fd99e52a275513</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const void *</type>
      <name>ctx</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ae927ca249f6d0178585fa9323c28e060</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>size</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ade7aca1fe0e03f3eb29c666f23a370bb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>headroom</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>acbce65b1ab089adbc5739b4bfc4f9052</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd::@38</type>
      <name>msgb_alloc</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a9072a04386c2f7995b335335cd795995</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>max_length</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a96bc1b363cb47d0c2c035e97af3eb416</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>current_length</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a200497bb7aa734ce827aa795863d5742</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>msg_queue</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a7cbdd5a0ee276c444a31acae133a3dd0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd::@39</type>
      <name>tx_queue</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a5dba59d70073fa5d06a727733c7d6ac5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fd</type>
      <name>ofd</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>accdbc778efe3b90e15a487beaa2a90d4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd::@40::@41</type>
      <name>poll</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ab39aee024d7d0cab58ee9cc3a68eead9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>enabled</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a75d6f6b3e5d53220cc39659500c300d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>num_sqes</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a69f336b8982fb2d4da3adf4c0f18be04</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>msghdr</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ae000d7c8bc8a5fbbdd96037077da3a06</anchor>
      <arglist>[IOFD_MSGHDR_MAX_READ_SQES]</arglist>
    </member>
    <member kind="variable">
      <type>struct io_uring *</type>
      <name>ring</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a8817a6633bb1fb724d0258d8c4202144</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sqes_submitted</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>aa7a2b923b6897828e4ef0f44944e501f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd::@40::@42::@43</type>
      <name>read</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a7f154bbfa17adeefc6c3f7f76022a7af</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd::@40::@42::@44</type>
      <name>write</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a7f3a070e578e27daa075e729b1fae10e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fd</type>
      <name>connect_ofd</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ab226b1d7438d7c4c8e3485818aba5af6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_io_fd::@40::@42</type>
      <name>uring</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>ab419b429755fa5ea559f5df92b3f2ba2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>union osmo_io_fd::@40</type>
      <name>u</name>
      <anchorfile>structosmo__io__fd.html</anchorfile>
      <anchor>a60bc7b9213310db03257cecebd289ea3</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_io_ops</name>
    <filename>structosmo__io__ops.html</filename>
    <member kind="variable">
      <type>void(*</type>
      <name>read_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>a0d6ea2f2d5398d1c81f4195be3f1ee13</anchor>
      <arglist>)(struct osmo_io_fd *iofd, int res, struct msgb *msg)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>write_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>a667c25d83ee279b51562cd1b80794c10</anchor>
      <arglist>)(struct osmo_io_fd *iofd, int res, struct msgb *msg)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>segmentation_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>afbe74fab87f1f05e6fe55704b85e8dd9</anchor>
      <arglist>)(struct msgb *msg)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>segmentation_cb2</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>a31950886c96ed6f258661c2ffa03c5f4</anchor>
      <arglist>)(struct osmo_io_fd *iofd, struct msgb *msg)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>recvfrom_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>a164b855a40443b2b47463be771e58552</anchor>
      <arglist>)(struct osmo_io_fd *iofd, int res, struct msgb *msg, const struct osmo_sockaddr *saddr)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>sendto_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>a76d3bb8b0f08a19a08c91e8a8949329f</anchor>
      <arglist>)(struct osmo_io_fd *iofd, int res, struct msgb *msg, const struct osmo_sockaddr *daddr)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>recvmsg_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>aa66525cc7afa89a1112b0b79ea690c45</anchor>
      <arglist>)(struct osmo_io_fd *iofd, int res, struct msgb *msg, const struct msghdr *msgh)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>sendmsg_cb</name>
      <anchorfile>structosmo__io__ops.html</anchorfile>
      <anchor>a7b05599800d9117cfbaabed5674e42c6</anchor>
      <arglist>)(struct osmo_io_fd *iofd, int res, struct msgb *msg)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_isdnhdlc_vars</name>
    <filename>structosmo__isdnhdlc__vars.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>bit_shift</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a8f1b82fb011d3e1681bf15e3d2e274d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>hdlc_bits1</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a2c550cfde1e6fe5f584f7fb32ea8daea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>data_bits</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>afaa735c16d63d007416bcfd6dd83bcdd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>ffbit_shift</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a34ba385073eae5f65f264db9412bcd09</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>state</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>aee1ece4cad781783c354bc9d9cc9075a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>dstpos</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a30e82ae56b382b48e7d49d03d367ac5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>crc</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a240b61b0367311559cb66c134ebd641c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>cbin</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a5f09b45944419c5d24846c0ca3769bea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>shift_reg</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a8e824fb2d3ebd49c6941185948af52e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>ffvalue</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a6be2baa7d882f7cd3f40bdcd64400955</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>data_received</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a4f8f57037c09e3ab469ecdb1e26d4d65</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>dchannel</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a93bba76cbbced36b1d8490b5e6df7c7c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>do_adapt56</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a152800d4b7e2137b6958f81016486d38</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>do_closing</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>a5cb28c42259edf2253c5ca4be69f2c59</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>do_bitreverse</name>
      <anchorfile>structosmo__isdnhdlc__vars.html</anchorfile>
      <anchor>ac0fc0b4cd189c2963222adf783b3a264</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_it_q</name>
    <filename>structosmo__it__q.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a185294b98ec5a73f6533544aec3402c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a30d3862818bab103ee93543bdb7ad9f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>pthread_mutex_t</type>
      <name>mutex</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a9254d144bbb09922082755c0531b14a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>current_length</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a392b8866d3cd27c6b7ebe8de1e45df94</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_fd</type>
      <name>event_ofd</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a18f587719c9ab1f72cd2f4bd9310ea1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a506c7d1c98c7425fdf6982d1de78b16d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>max_length</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a2dbd779abeefdc8d1598725b5087058f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>read_cb</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a667447a33d7bbef74703fec480071ec7</anchor>
      <arglist>)(struct osmo_it_q *q, struct llist_head *item)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>data</name>
      <anchorfile>structosmo__it__q.html</anchorfile>
      <anchor>a2b23e0fdfb2a33602b09e1ef54250c0a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_mnl</name>
    <filename>structosmo__mnl.html</filename>
    <member kind="variable">
      <type>struct osmo_fd</type>
      <name>ofd</name>
      <anchorfile>structosmo__mnl.html</anchorfile>
      <anchor>a0754b0a189fbdc8aea13592ebdccc8b3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct mnl_socket *</type>
      <name>mnls</name>
      <anchorfile>structosmo__mnl.html</anchorfile>
      <anchor>ac17f0deb6977ea75e058ec1b8d742eee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>mnl_cb_t</type>
      <name>mnl_cb</name>
      <anchorfile>structosmo__mnl.html</anchorfile>
      <anchor>a09f4a7c8a9ffed182e2d811b7bffecdb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>priv</name>
      <anchorfile>structosmo__mnl.html</anchorfile>
      <anchor>abeb23483b65395d61a6803f3d4aa7a81</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_netdev</name>
    <filename>structosmo__netdev.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>a71779bedbecfc9bebe2d9985c5b4b5d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct netdev_netns_ctx *</type>
      <name>netns_ctx</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>a0ed1cadb59bf61dbaf4430f440468237</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>aa05e8130a453ba05e3d97b0f35f8bf42</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>ifindex</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>a8aa968b0e048890060c371ebb52cc39b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>dev_name</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>ad16c9582c105f350696defa0b5a0c5e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>netns_name</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>a494314c92e18d12927e9685e7f2114eb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>priv_data</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>ad066720ee7d4a397bea2efccad72d628</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>registered</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>abd5cd3efaa09bb617adfd53a5ae72971</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_netdev_ifupdown_ind_cb_t</type>
      <name>ifupdown_ind_cb</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>afff9640591b00a179c10dbc399dc9f00</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_netdev_dev_name_chg_cb_t</type>
      <name>dev_name_chg_cb</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>a268b70df124df1925a71fe077b7f2ae5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_netdev_mtu_chg_cb_t</type>
      <name>mtu_chg_cb</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>a7bc53da7a3b02f02a778230c12c058c0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>if_up</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>ab698fd22fd07e5dca94531dd6a6da863</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>if_up_known</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>acd8f434ed5476df3c602c26920983bd3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>if_mtu</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>ae290ac5cb89093bb90ac9b8a3bb32b21</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>if_mtu_known</name>
      <anchorfile>structosmo__netdev.html</anchorfile>
      <anchor>ae1708cf565cc472a8ee92211aee74b97</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_netns_switch_state</name>
    <filename>structosmo__netns__switch__state.html</filename>
    <member kind="variable">
      <type>sigset_t</type>
      <name>prev_sigmask</name>
      <anchorfile>structosmo__netns__switch__state.html</anchorfile>
      <anchor>a3d82f80858c8ebac266bd187c43c6739</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>prev_nsfd</name>
      <anchorfile>structosmo__netns__switch__state.html</anchorfile>
      <anchor>a333f9c7be1948ea6c2e260fb1ecbe508</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_prbs</name>
    <filename>structosmo__prbs.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__prbs.html</anchorfile>
      <anchor>a5b2d83f5c0ec619998ca56acd7e7cc1f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>len</name>
      <anchorfile>structosmo__prbs.html</anchorfile>
      <anchor>a828bace7c483825ef665d3b8776ae2c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>coeff</name>
      <anchorfile>structosmo__prbs.html</anchorfile>
      <anchor>a3f10b7421948c89faef6ac2dab64d8eb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_prbs_state</name>
    <filename>structosmo__prbs__state.html</filename>
    <member kind="variable">
      <type>const struct osmo_prbs *</type>
      <name>prbs</name>
      <anchorfile>structosmo__prbs__state.html</anchorfile>
      <anchor>a5d8f830137c6dfd2c2b31fd87b03fb5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>state</name>
      <anchorfile>structosmo__prbs__state.html</anchorfile>
      <anchor>a69b955dfdf6b091e8111521e6600ce84</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_prim_event_map</name>
    <filename>structosmo__prim__event__map.html</filename>
    <member kind="variable">
      <type>unsigned int</type>
      <name>sap</name>
      <anchorfile>structosmo__prim__event__map.html</anchorfile>
      <anchor>a2f1d32c2cbf166c48b2a9a95e758f5d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>primitive</name>
      <anchorfile>structosmo__prim__event__map.html</anchorfile>
      <anchor>a40301df4bd016ab9d9a223fb0ba554b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_prim_operation</type>
      <name>operation</name>
      <anchorfile>structosmo__prim__event__map.html</anchorfile>
      <anchor>ab03b4607b264e3ab646e05c5018ac8f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>event</name>
      <anchorfile>structosmo__prim__event__map.html</anchorfile>
      <anchor>a26d9026e81f6a22b231269dec2a56735</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_prim_hdr</name>
    <filename>structosmo__prim__hdr.html</filename>
    <member kind="variable">
      <type>unsigned int</type>
      <name>sap</name>
      <anchorfile>structosmo__prim__hdr.html</anchorfile>
      <anchor>ad77587713baa284b7e74bcaadc4704df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>primitive</name>
      <anchorfile>structosmo__prim__hdr.html</anchorfile>
      <anchor>a9328028342bffc94a7e97a3451ae218f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_prim_operation</type>
      <name>operation</name>
      <anchorfile>structosmo__prim__hdr.html</anchorfile>
      <anchor>a54a9acf76e3e39037a65efb387033e60</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct msgb *</type>
      <name>msg</name>
      <anchorfile>structosmo__prim__hdr.html</anchorfile>
      <anchor>a235048783f25c6ebce27806d880b6bf0</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_sercomm_inst</name>
    <filename>structosmo__sercomm__inst.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>initialized</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>a4961c186e4a56cb874e160549a83376f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>uart_id</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>ac724aaff9018a90d51b961c02d86d320</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>dlci_queues</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>a83769e8103c5b362fe1b8607f7f7a688</anchor>
      <arglist>[_SC_DLCI_MAX]</arglist>
    </member>
    <member kind="variable">
      <type>struct msgb *</type>
      <name>msg</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>a94a86e9769d386c6b1596bf80b314789</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>state</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>acdc6c68f82eb01f30d62994165777a2a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t *</type>
      <name>next_char</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>ad6e7299c50cafc37716a3cedeb8f9e59</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sercomm_inst::@24</type>
      <name>tx</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>adcc7eab68ac50b2884d4f166cf91011c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>dlci_cb_t</type>
      <name>dlci_handler</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>aff3fde39929eab370d1e9180e9892cce</anchor>
      <arglist>[_SC_DLCI_MAX]</arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>msg_size</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>a0e8b4cbcab841dafbacf6f367724e346</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>dlci</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>a961013f76df181cb484b8dea1521c57f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>ctrl</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>ab70f432fb335e1e28849d049cc0b423d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sercomm_inst::@25</type>
      <name>rx</name>
      <anchorfile>structosmo__sercomm__inst.html</anchorfile>
      <anchor>ad04152412fd151668d504ada68e5e661</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_signalfd</name>
    <filename>structosmo__signalfd.html</filename>
    <member kind="variable">
      <type>struct osmo_fd</type>
      <name>ofd</name>
      <anchorfile>structosmo__signalfd.html</anchorfile>
      <anchor>afc4a696869d608f4face98588c2a35e3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>sigset_t</type>
      <name>sigset</name>
      <anchorfile>structosmo__signalfd.html</anchorfile>
      <anchor>a7026e2dd799db1b75888e46818e0c6fe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_signalfd_cb *</type>
      <name>cb</name>
      <anchorfile>structosmo__signalfd.html</anchorfile>
      <anchor>ad5a7e7c14e802dd969ef5cae8f7a8515</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>data</name>
      <anchorfile>structosmo__signalfd.html</anchorfile>
      <anchor>a682ae5ae34a97b6841e95fb2ac490f75</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_sock_init2_multiaddr_pars</name>
    <filename>structosmo__sock__init2__multiaddr__pars.html</filename>
    <member kind="variable">
      <type>uint8_t</type>
      <name>version</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a0434ba0b264942e7780a8d639e9a8708</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>set</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a4c708159163eea8b9057b391f37010ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>abort_on_failure</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a43682cf4b58bd20d0c205db2e22be690</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint32_t</type>
      <name>value</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>ace1df10d6eb82c39255f9e81faa9d8c6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sock_init2_multiaddr_pars::@29::@31::@32</type>
      <name>sockopt_auth_supported</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a2bea6748d3875f60d2b6497e44dd3bca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sock_init2_multiaddr_pars::@29::@31::@33</type>
      <name>sockopt_asconf_supported</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>af7bfe680a5ec172a1f5787ba311ae3ad</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>num_ostreams_present</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>adb194886ea115f1afde574bb33ce8f32</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>max_instreams_present</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>ae75c03f03cbce9ffc69db01be553e5ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>max_attempts_present</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>ac44c8f019d270fa422cb039c4f84e239</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>max_init_timeo_present</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a05c2190b53f05264fff912a54b9f574f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>num_ostreams_value</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>abd01c08060ad03fcd410f0eca9d13cd7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>max_instreams_value</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a9652289e2cf95d9e4a6bac4781f25cb9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>max_attempts_value</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>afb7ba491eeda893b5a2db229d36a1540</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>max_init_timeo_value</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>a8392ee3906f780fce2a08b5220669c62</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sock_init2_multiaddr_pars::@29::@31::@34</type>
      <name>sockopt_initmsg</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>afffbdfb889c39d4ef901032a71bebec2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_sock_init2_multiaddr_pars::@29::@31</type>
      <name>sctp</name>
      <anchorfile>structosmo__sock__init2__multiaddr__pars.html</anchorfile>
      <anchor>aee031675bf601fe19fa8257e8d3b7c61</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_sockaddr</name>
    <filename>structosmo__sockaddr.html</filename>
    <member kind="variable">
      <type>struct sockaddr</type>
      <name>sa</name>
      <anchorfile>structosmo__sockaddr.html</anchorfile>
      <anchor>a8f00a36ae86d446962aabefba05a4910</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct sockaddr_storage</type>
      <name>sas</name>
      <anchorfile>structosmo__sockaddr.html</anchorfile>
      <anchor>a18de09a9aacb9fa31e678b5d7b57de51</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct sockaddr_in</type>
      <name>sin</name>
      <anchorfile>structosmo__sockaddr.html</anchorfile>
      <anchor>a49769103546b54f98731182f78479c06</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct sockaddr_in6</type>
      <name>sin6</name>
      <anchorfile>structosmo__sockaddr.html</anchorfile>
      <anchor>a555b00d68c45f8370a4063c292f13f52</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>union osmo_sockaddr::@28</type>
      <name>u</name>
      <anchorfile>structosmo__sockaddr.html</anchorfile>
      <anchor>ae4a0c6d6ca4f959d025bb1c66b9cae60</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_sockaddr_str</name>
    <filename>structosmo__sockaddr__str.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>af</name>
      <anchorfile>structosmo__sockaddr__str.html</anchorfile>
      <anchor>a9506635fd7513bab48263030f039fa16</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char</type>
      <name>ip</name>
      <anchorfile>structosmo__sockaddr__str.html</anchorfile>
      <anchor>ad1fd9e4a1d889c0934fba15b8a8a2349</anchor>
      <arglist>[INET6_ADDRSTRLEN]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>port</name>
      <anchorfile>structosmo__sockaddr__str.html</anchorfile>
      <anchor>afa2d01a07340ad74aae1cb1e59eb2ec2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_soft_uart</name>
    <filename>structosmo__soft__uart.html</filename>
    <member kind="variable">
      <type>struct osmo_soft_uart_cfg</type>
      <name>cfg</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a18eec6d110f474594908de271f8e23db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>acb290af95b35206f31e889af25be0d30</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>status</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>af5896d386a722d5b5ce33e1cad715f1b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>running</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>ac3c74e27396ddf1528cf1f99f791cd9d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>bit_count</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a59d5bc565ac179cb4109f68c7dd7caa4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>shift_reg</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a0d803184e0e11d4b1f1ede35a20387b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct msgb *</type>
      <name>msg</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a780c9c258e4f6f22634d09b96026096f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ubit_t</type>
      <name>parity_bit</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>af12209eb76b5bc92bfa33b85615af7b4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>flags</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>aabf3ab2eb7601c8d95b08e98041139d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_timer_list</type>
      <name>timer</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a9dce57416592b34b41ca34507ed5291f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum suart_flow_state</type>
      <name>flow_state</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a2744b3e1f99827b969b1b6e39261951c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_soft_uart::@45</type>
      <name>rx</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>a0d99f0732571b3ab5f2b1b236dd05697</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_soft_uart::@46</type>
      <name>tx</name>
      <anchorfile>structosmo__soft__uart.html</anchorfile>
      <anchor>aeffeec8dd8b01ae712994d0dff326c1d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_soft_uart_cfg</name>
    <filename>structosmo__soft__uart__cfg.html</filename>
    <member kind="variable">
      <type>uint8_t</type>
      <name>num_data_bits</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>a7abd5686b130f67adbd1fec476fe425f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>num_stop_bits</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>a1d1dda885179f384535ddbbbfe660759</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_soft_uart_parity_mode</type>
      <name>parity_mode</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>a3cc2efc803a6306918169ebdc3133248</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>rx_buf_size</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>ac396e846c13c8534559c2845dfa7a58b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>rx_timeout_ms</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>ad564a39787155ae795f4399b9b8e16c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>priv</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>ace69ad9e7afdcd0bdb51ccd7a4eb889a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>rx_cb</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>abf5897765015de53fb28e910c4d7c926</anchor>
      <arglist>)(void *priv, struct msgb *rx_data, unsigned int flags)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>tx_cb</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>a70ff964fa736f14166e618e3572466a3</anchor>
      <arglist>)(void *priv, struct msgb *tx_data)</arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>status_change_cb</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>afb9119466330ad2e1aaaffe6d5bb2ddb</anchor>
      <arglist>)(void *priv, unsigned int status)</arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_soft_uart_flow_ctrl_mode</type>
      <name>flow_ctrl_mode</name>
      <anchorfile>structosmo__soft__uart__cfg.html</anchorfile>
      <anchor>a829845181355393fe89d4a54b6ea04f1</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stat_item</name>
    <filename>structosmo__stat__item.html</filename>
    <member kind="variable">
      <type>const struct osmo_stat_item_desc *</type>
      <name>desc</name>
      <anchorfile>structosmo__stat__item.html</anchorfile>
      <anchor>a609fb2ec11e3a797c0c6f1b9c307bed2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stat_item_period</type>
      <name>value</name>
      <anchorfile>structosmo__stat__item.html</anchorfile>
      <anchor>a6a4a64a5740b30c2ee01d2f389a3370e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stat_item_period</type>
      <name>reported</name>
      <anchorfile>structosmo__stat__item.html</anchorfile>
      <anchor>afaed48a29956ea0319a25bc6ba676e6b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stat_item_desc</name>
    <filename>structosmo__stat__item__desc.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__stat__item__desc.html</anchorfile>
      <anchor>a3e7a642d1651a2bc34718570dd9b80f4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>description</name>
      <anchorfile>structosmo__stat__item__desc.html</anchorfile>
      <anchor>a37ffd9f9806d546d283341ea02d921cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>unit</name>
      <anchorfile>structosmo__stat__item__desc.html</anchorfile>
      <anchor>af563596769ecdaf1313a809fbda159fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>num_values</name>
      <anchorfile>structosmo__stat__item__desc.html</anchorfile>
      <anchor>a5ae8891d9b3619741b311510dd459630</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int32_t</type>
      <name>default_value</name>
      <anchorfile>structosmo__stat__item__desc.html</anchorfile>
      <anchor>a4e59b81f8a02fa3ced1ed4d760b37e67</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stat_item_group</name>
    <filename>structosmo__stat__item__group.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__stat__item__group.html</anchorfile>
      <anchor>af1dd5fb9c30961066b25c5359f8e7dd9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_stat_item_group_desc *</type>
      <name>desc</name>
      <anchorfile>structosmo__stat__item__group.html</anchorfile>
      <anchor>a6b0e959e1b5f49400e34986d58426cbc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>idx</name>
      <anchorfile>structosmo__stat__item__group.html</anchorfile>
      <anchor>af2b7f166ce30827f71075b477d425f18</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structosmo__stat__item__group.html</anchorfile>
      <anchor>ab29bdf5238072c11ba13846a7e1e4b4a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stat_item *</type>
      <name>items</name>
      <anchorfile>structosmo__stat__item__group.html</anchorfile>
      <anchor>aa7fd0d6e4691b620d241e783be41f317</anchor>
      <arglist>[0]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stat_item_group_desc</name>
    <filename>structosmo__stat__item__group__desc.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>group_name_prefix</name>
      <anchorfile>structosmo__stat__item__group__desc.html</anchorfile>
      <anchor>a4356607204f67795efe0d85fa2d702bb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>group_description</name>
      <anchorfile>structosmo__stat__item__group__desc.html</anchorfile>
      <anchor>a9acef223dcbcf56708ee718e8e795cc1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>class_id</name>
      <anchorfile>structosmo__stat__item__group__desc.html</anchorfile>
      <anchor>ab4bc4da517e6b364c33980d12813beeb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const unsigned int</type>
      <name>num_items</name>
      <anchorfile>structosmo__stat__item__group__desc.html</anchorfile>
      <anchor>afb6b4aed69e38f2483c7b8db1531bf78</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_stat_item_desc *</type>
      <name>item_desc</name>
      <anchorfile>structosmo__stat__item__group__desc.html</anchorfile>
      <anchor>a8c4c2f5d244941e49f1accac89c8f3d5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stat_item_period</name>
    <filename>structosmo__stat__item__period.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>n</name>
      <anchorfile>structosmo__stat__item__period.html</anchorfile>
      <anchor>a324b7ab35148e4d017d6b472f410bbaf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int32_t</type>
      <name>min</name>
      <anchorfile>structosmo__stat__item__period.html</anchorfile>
      <anchor>a9862c504ffca8af35a08a0010d72e8d9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int32_t</type>
      <name>last</name>
      <anchorfile>structosmo__stat__item__period.html</anchorfile>
      <anchor>aa3d0717377338fcb567fe610ddb8d3cb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int32_t</type>
      <name>max</name>
      <anchorfile>structosmo__stat__item__period.html</anchorfile>
      <anchor>a87ae00431b74a609d4226ad9029ae670</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int64_t</type>
      <name>sum</name>
      <anchorfile>structosmo__stat__item__period.html</anchorfile>
      <anchor>a1464102c829b83f4c87815421b0870c2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stats_config</name>
    <filename>structosmo__stats__config.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>interval</name>
      <anchorfile>structosmo__stats__config.html</anchorfile>
      <anchor>adb117e5252e50624456e9fde11fd9c6b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_stats_reporter</name>
    <filename>structosmo__stats__reporter.html</filename>
    <member kind="variable">
      <type>enum osmo_stats_reporter_type</type>
      <name>type</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a447e3a9c7485f6da35a42d11144d8830</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>aba6f8ea71113b68e578b67ae40516a00</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>have_net_config</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a2ced8e0ee026692419637d145824b2ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>enabled</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a31fa44606002010f79713ac4f1305d98</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>name_prefix</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a8f788b2f3b9d3c56eefd3f350bae9640</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>dest_addr_str</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a9eb34ce67848779736b8221120ac47fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>bind_addr_str</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>ae23206164636d5bef4b658ab6c7844ca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>dest_port</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a0bee35cb29668441b644101c16a63449</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>mtu</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a3c4d885fad2f0a33c3e5c75f5cae8856</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>flush_period</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>ac4988d5969e4e475b3df7deabb143596</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_stats_class</type>
      <name>max_class</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a48ff6dba2879e912e3e8dbd80c74109f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>running</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a8b291900a0654f4d36c7d14882229e10</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct sockaddr</type>
      <name>dest_addr</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>adcfe52eeb856c62516b02b78994ab44c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>dest_addr_len</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a0ddd34d35317f3b8dfb0655ef90fad68</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct sockaddr</type>
      <name>bind_addr</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a1a72da4fb01012adaef3a16f4c5059cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>bind_addr_len</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a3df0ece59bf1abdbf097616a36b99590</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>fd</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a2ee45eaf3adab87b10f9369d87ae690d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct msgb *</type>
      <name>buffer</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a653f7f5cf8a638b91e7243e120027658</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>agg_enabled</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a58d133ff97380412ca2cc71de2444357</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>force_single_flush</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a1f7b2ad103f1cf99cd756fecda11d851</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>flush_period_counter</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a03fa4cf50c3da7a7e7b0b0f58a9eb3c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>ab2151a34d578ba8122c2d3bdade9ef54</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>open</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a8485e95c2d20e3458af5f9eca194906e</anchor>
      <arglist>)(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>close</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a3948799475fb4d97e391b9ed3cd6405a</anchor>
      <arglist>)(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>send_counter</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a26d44cf72ea52e2c5a169d7d2dce5ad6</anchor>
      <arglist>)(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>send_item</name>
      <anchorfile>structosmo__stats__reporter.html</anchorfile>
      <anchor>a47b45b8e087d5e41e338251355ff0203</anchor>
      <arglist>)(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int64_t value)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_strbuf</name>
    <filename>structosmo__strbuf.html</filename>
    <member kind="variable">
      <type>char *</type>
      <name>buf</name>
      <anchorfile>structosmo__strbuf.html</anchorfile>
      <anchor>a4152a371ad63172d7c0e5cd454b7ea5f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>len</name>
      <anchorfile>structosmo__strbuf.html</anchorfile>
      <anchor>a4d611f24cb8efff2a68b135036bad67d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>pos</name>
      <anchorfile>structosmo__strbuf.html</anchorfile>
      <anchor>a3ab32600dbec00c82d7b366f18e3ebe7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>size_t</type>
      <name>chars_needed</name>
      <anchorfile>structosmo__strbuf.html</anchorfile>
      <anchor>a97f0dc9632c154511285e720018fa5df</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_strrb</name>
    <filename>structosmo__strrb.html</filename>
    <member kind="variable">
      <type>uint16_t</type>
      <name>start</name>
      <anchorfile>structosmo__strrb.html</anchorfile>
      <anchor>a8ccdafe5cb406e159528d6f82d8fc0fc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>end</name>
      <anchorfile>structosmo__strrb.html</anchorfile>
      <anchor>a4b354430c3f39723bf0538d24a890c93</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint16_t</type>
      <name>size</name>
      <anchorfile>structosmo__strrb.html</anchorfile>
      <anchor>a282529f64150a93b7a406d97565072ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char **</type>
      <name>buffer</name>
      <anchorfile>structosmo__strrb.html</anchorfile>
      <anchor>a592f70cacc0c63a0564b20c14d698a39</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_talloc_contexts</name>
    <filename>structosmo__talloc__contexts.html</filename>
    <member kind="variable">
      <type>void *</type>
      <name>global</name>
      <anchorfile>structosmo__talloc__contexts.html</anchorfile>
      <anchor>a449018d04c339e799cc7ecdb8050a070</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>select</name>
      <anchorfile>structosmo__talloc__contexts.html</anchorfile>
      <anchor>af69d09ce39713ddbbd56b7747a3215ac</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_tcp_stats_config</name>
    <filename>structosmo__tcp__stats__config.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>interval</name>
      <anchorfile>structosmo__tcp__stats__config.html</anchorfile>
      <anchor>a8be6e5bdb8fea0060526141acae3facc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>batch_size</name>
      <anchorfile>structosmo__tcp__stats__config.html</anchorfile>
      <anchor>ac62d7f4829435f7cb4cf3b5ff7416eb4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_tdef</name>
    <filename>structosmo__tdef.html</filename>
    <member kind="variable">
      <type>const int</type>
      <name>T</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>aa8fdd929b165511b9c68b5a8a73ea420</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const unsigned long</type>
      <name>default_val</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>aaa301306dcdf81c075ca03365ad43738</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>enum osmo_tdef_unit</type>
      <name>unit</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>a0e6ea0f73fe65cde08e50431d503c5f9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>desc</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>aa5a127f1c816e6f053a8a7b48920b6e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>val</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>ae81b5f0c2bda9bb71b5fdd6fd8ea167e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>min_val</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>ae67d57826e38571645a9059ffa83327e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned long</type>
      <name>max_val</name>
      <anchorfile>structosmo__tdef.html</anchorfile>
      <anchor>a929442b826d692030796a49485436b9b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_tdef_group</name>
    <filename>structosmo__tdef__group.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structosmo__tdef__group.html</anchorfile>
      <anchor>a578907f52be5ebac44fef3f4d36ec129</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>desc</name>
      <anchorfile>structosmo__tdef__group.html</anchorfile>
      <anchor>ad11412b90aaa50cb49064974e2d4c807</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_tdef *</type>
      <name>tdefs</name>
      <anchorfile>structosmo__tdef__group.html</anchorfile>
      <anchor>a5ba4012c7110a5464498ac7199558095</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_tdef_state_timeout</name>
    <filename>structosmo__tdef__state__timeout.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>T</name>
      <anchorfile>structosmo__tdef__state__timeout.html</anchorfile>
      <anchor>a8ba74f7cd70582e4f9945203c0ff49f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>keep_timer</name>
      <anchorfile>structosmo__tdef__state__timeout.html</anchorfile>
      <anchor>a8a9095a9c9a8a7d9366a1c5349f68c80</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_time_cc</name>
    <filename>structosmo__time__cc.html</filename>
    <member kind="variable">
      <type>struct osmo_time_cc_cfg</type>
      <name>cfg</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>a2baaec831f2a84fc42e884b0db2fcda9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>flag_state</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>a81138b0a4b00edd05220d2b2e4a9e2b9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>total_sum</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>a09624b09c014251d80d28f8d0938c086</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_timer_list</type>
      <name>timer</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>a96ef07961091e1f8926b8d98ff9684b9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>start_time</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>abb648f545ea2521e6688f4c39324a469</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>last_counted_time</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>a657c939b1574a736235defbe1fe5f8f1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>sum</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>a296baa4bd538ac56e9a07bee8c48010a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>reported_sum</name>
      <anchorfile>structosmo__time__cc.html</anchorfile>
      <anchor>ab049651207b2d4207c38320c2fa6a881</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_time_cc_cfg</name>
    <filename>structosmo__time__cc__cfg.html</filename>
    <member kind="variable">
      <type>uint64_t</type>
      <name>gran_usec</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>a93be973a22fb778609777a0882c612f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>round_threshold_usec</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>aceacac547554ccb755b66114af5971ae</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>forget_sum_usec</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>af7181e34adbc13ec64a3ab90bbc3c0e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rate_ctr *</type>
      <name>rate_ctr</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>aa01fa71082702abfeebac2d62ac12b3a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>T_gran</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>addce4e6f974d5a0d734388dd9b3eb52b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>T_round_threshold</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>aea10d0878ae511a70182038011fa02a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>T_forget_sum</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>a18a69cabb36510378162fbf66b818cd5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_tdef *</type>
      <name>T_defs</name>
      <anchorfile>structosmo__time__cc__cfg.html</anchorfile>
      <anchor>af64ab35d0ec6ed887d568d5ec226c6db</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_timer_list</name>
    <filename>structosmo__timer__list.html</filename>
    <member kind="variable">
      <type>struct rb_node</type>
      <name>node</name>
      <anchorfile>structosmo__timer__list.html</anchorfile>
      <anchor>aab2a7671fc03859801d79cb02210d93a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structosmo__timer__list.html</anchorfile>
      <anchor>a3d224b460d85ec877b42f3a9dc66686a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct timeval</type>
      <name>timeout</name>
      <anchorfile>structosmo__timer__list.html</anchorfile>
      <anchor>ab260b34f66b5a12a0059eda6c729379b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>active</name>
      <anchorfile>structosmo__timer__list.html</anchorfile>
      <anchor>a6f1145859e880c7ec66059cdb3654c7e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>cb</name>
      <anchorfile>structosmo__timer__list.html</anchorfile>
      <anchor>ab079ec5ef59f6f394b94cd46088ec6f6</anchor>
      <arglist>)(void *)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>data</name>
      <anchorfile>structosmo__timer__list.html</anchorfile>
      <anchor>ab18c20ea7adeb5e6761db0d3ea7d9e7e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_tundev</name>
    <filename>structosmo__tundev.html</filename>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>aa0b4ccb374776be8063d3a1be37306b4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_netdev *</type>
      <name>netdev</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>af90ea04f375c3de79307ba0445a36685</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>ifindex</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a8fc81b152241a5993fffb5e990479157</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>dev_name</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a467981acdc07e3a93e708541941f1762</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>dev_name_dynamic</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a161b0f1ee8e68fcc4849630a3f37c2d4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_wqueue</type>
      <name>wqueue</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a82af8d259953165504b4bb484463c34c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>netns_name</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a7afbcdc673eb6d20234bb07dd3ad8958</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>priv_data</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a2a3249bd0b985ede44986980f44d8f0b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_tundev_data_ind_cb_t</type>
      <name>data_ind_cb</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>ae6dfc3b2fdf86c3427877d4bac3e88f8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>opened</name>
      <anchorfile>structosmo__tundev.html</anchorfile>
      <anchor>a9b0058eb7e90f447c058bbdc878893ea</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_unaligned_cpu32</name>
    <filename>structosmo__unaligned__cpu32.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>x</name>
      <anchorfile>structosmo__unaligned__cpu32.html</anchorfile>
      <anchor>a11eca62343c520a0c8e341a1e7753146</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_use_count</name>
    <filename>structosmo__use__count.html</filename>
    <member kind="variable">
      <type>void *</type>
      <name>talloc_object</name>
      <anchorfile>structosmo__use__count.html</anchorfile>
      <anchor>a931dcee6ec7160ea3dda64f6190d0a7e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_use_count_cb_t</type>
      <name>use_cb</name>
      <anchorfile>structosmo__use__count.html</anchorfile>
      <anchor>ae3ae970b037b9f0828bd4b4b5d84b248</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>use_counts</name>
      <anchorfile>structosmo__use__count.html</anchorfile>
      <anchor>a2e13cc69cf4792e3260368102e6d4ee8</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_use_count_entry</name>
    <filename>structosmo__use__count__entry.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structosmo__use__count__entry.html</anchorfile>
      <anchor>a5a2a03538a19e29d830bf9c29382de24</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_use_count *</type>
      <name>use_count</name>
      <anchorfile>structosmo__use__count__entry.html</anchorfile>
      <anchor>a0cc73d52f17a7a3acfa3485d59d8f416</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>use</name>
      <anchorfile>structosmo__use__count__entry.html</anchorfile>
      <anchor>a91221ed50645c326e449bfe235650f9d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int32_t</type>
      <name>count</name>
      <anchorfile>structosmo__use__count__entry.html</anchorfile>
      <anchor>ae27451006c39bebe8855bcde9e1b967c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>osmo_wqueue</name>
    <filename>structosmo__wqueue.html</filename>
    <member kind="variable">
      <type>struct osmo_fd</type>
      <name>bfd</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>a57c285118552bc1dfe4800c902bb0719</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>max_length</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>a1ac0b48a931de4c45ce432098adc5a04</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>current_length</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>a7f42a77dae317a74b151cc76480f6729</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>msg_queue</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>a01ef6782c5706b22d5e72d724a742bed</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>read_cb</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>af34ee3f3e80707ce0d9f0e8d09d46150</anchor>
      <arglist>)(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>write_cb</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>aac8455731a29b598880872f177ca483c</anchor>
      <arglist>)(struct osmo_fd *fd, struct msgb *msg)</arglist>
    </member>
    <member kind="variable">
      <type>int(*</type>
      <name>except_cb</name>
      <anchorfile>structosmo__wqueue.html</anchorfile>
      <anchor>a89018e4a1d9eae9790b19f2c886fa077</anchor>
      <arglist>)(struct osmo_fd *fd)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rate_ctr</name>
    <filename>structrate__ctr.html</filename>
    <member kind="variable">
      <type>uint64_t</type>
      <name>current</name>
      <anchorfile>structrate__ctr.html</anchorfile>
      <anchor>ab073a714cede168ccea11a5377bd919f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>previous</name>
      <anchorfile>structrate__ctr.html</anchorfile>
      <anchor>aec803979013e4caad5871af892dd9648</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rate_ctr_per_intv</type>
      <name>intv</name>
      <anchorfile>structrate__ctr.html</anchorfile>
      <anchor>ab24986d08ab612eed00102f446a7764b</anchor>
      <arglist>[RATE_CTR_INTV_NUM]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rate_ctr_desc</name>
    <filename>structrate__ctr__desc.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>name</name>
      <anchorfile>structrate__ctr__desc.html</anchorfile>
      <anchor>a97c59e7c306910cb5c07009845b16e73</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>description</name>
      <anchorfile>structrate__ctr__desc.html</anchorfile>
      <anchor>a37ea8df7a7bb902171a21f6da55132d1</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rate_ctr_group</name>
    <filename>structrate__ctr__group.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>list</name>
      <anchorfile>structrate__ctr__group.html</anchorfile>
      <anchor>a181adb8c4ad74c5f9a24264d73341cdb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct rate_ctr_group_desc *</type>
      <name>desc</name>
      <anchorfile>structrate__ctr__group.html</anchorfile>
      <anchor>aeef5a6a6e3d928f326f404b0fc3457cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>idx</name>
      <anchorfile>structrate__ctr__group.html</anchorfile>
      <anchor>aa942f83cefcb7948f9ee8bda89036c6b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structrate__ctr__group.html</anchorfile>
      <anchor>ae443e7b325714f701adcd40f432ef938</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rate_ctr</type>
      <name>ctr</name>
      <anchorfile>structrate__ctr__group.html</anchorfile>
      <anchor>a5329ac12ad550415a671f6791becc795</anchor>
      <arglist>[0]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rate_ctr_group_desc</name>
    <filename>structrate__ctr__group__desc.html</filename>
    <member kind="variable">
      <type>const char *</type>
      <name>group_name_prefix</name>
      <anchorfile>structrate__ctr__group__desc.html</anchorfile>
      <anchor>a868596075bae38afa204b465391af1af</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>group_description</name>
      <anchorfile>structrate__ctr__group__desc.html</anchorfile>
      <anchor>ac9391bf54b4e5509a386c424f5cea080</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>class_id</name>
      <anchorfile>structrate__ctr__group__desc.html</anchorfile>
      <anchor>a03f296fcd0db770dca7633fe588487cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>num_ctr</name>
      <anchorfile>structrate__ctr__group__desc.html</anchorfile>
      <anchor>a84f5f9b3e3c9463c93e08ff9aad4e8c3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct rate_ctr_desc *</type>
      <name>ctr_desc</name>
      <anchorfile>structrate__ctr__group__desc.html</anchorfile>
      <anchor>a78461a846a4bab2ef830e2e5866138bd</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rate_ctr_per_intv</name>
    <filename>structrate__ctr__per__intv.html</filename>
    <member kind="variable">
      <type>uint64_t</type>
      <name>last</name>
      <anchorfile>structrate__ctr__per__intv.html</anchorfile>
      <anchor>adc5b7822b3081cc1b4795f37c6c018a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint64_t</type>
      <name>rate</name>
      <anchorfile>structrate__ctr__per__intv.html</anchorfile>
      <anchor>a07dd358e67b85bd1e10e8de375932e87</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rb_node</name>
    <filename>structrb__node.html</filename>
    <member kind="variable">
      <type>unsigned long</type>
      <name>rb_parent_color</name>
      <anchorfile>structrb__node.html</anchorfile>
      <anchor>a17d41e71d6a971a9b6edaba681f745c9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rb_node *</type>
      <name>rb_right</name>
      <anchorfile>structrb__node.html</anchorfile>
      <anchor>addfd0d9e38c1c4230cfb76e04416871b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct rb_node *</type>
      <name>rb_left</name>
      <anchorfile>structrb__node.html</anchorfile>
      <anchor>a3d07d7f950f64c9e049229d4a874c652</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>rb_root</name>
    <filename>structrb__root.html</filename>
    <member kind="variable">
      <type>struct rb_node *</type>
      <name>rb_node</name>
      <anchorfile>structrb__root.html</anchorfile>
      <anchor>a33f7d97bcf4287552d4e704c91bf0b18</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>signal_handler</name>
    <filename>structsignal__handler.html</filename>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>entry</name>
      <anchorfile>structsignal__handler.html</anchorfile>
      <anchor>aaf978cda06aa1baee2fea4bb483a3146</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>unsigned int</type>
      <name>subsys</name>
      <anchorfile>structsignal__handler.html</anchorfile>
      <anchor>a7abd0007161ea6e47b5f6244011f92c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>osmo_signal_cbfn *</type>
      <name>cbfn</name>
      <anchorfile>structsignal__handler.html</anchorfile>
      <anchor>ab656dc13121c101cede66d00dd47cef4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>data</name>
      <anchorfile>structsignal__handler.html</anchorfile>
      <anchor>abda94e2f563b0ea32df0429d12297678</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>value_string</name>
    <filename>structvalue__string.html</filename>
    <member kind="variable">
      <type>uint32_t</type>
      <name>value</name>
      <anchorfile>structvalue__string.html</anchorfile>
      <anchor>a3e6e66887a01eb63dddc99688e39cf07</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const char *</type>
      <name>str</name>
      <anchorfile>structvalue__string.html</anchorfile>
      <anchor>a787833b6262f2c6021c02477abae07d4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>vdecoder</name>
    <filename>structvdecoder.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>n</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a344d9fccddebdf6de5d58507b42e1c6f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>k</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a3c3fdfab7b7a1f71cb1ca50470e36a8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a19f6be7807a072b04b941b70a117ed05</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>recursive</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>ad068ddca636e56dd9d65c1b75e2a433c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>intrvl</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a65484c7b536772307c3b6e6d3557dfe6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct vtrellis</type>
      <name>trellis</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a64c8334810832c81c72ae0f07b267cda</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int16_t **</type>
      <name>paths</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a2abd7e908d79ce326374f4e1772abd66</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void(*</type>
      <name>metric_func</name>
      <anchorfile>structvdecoder.html</anchorfile>
      <anchor>a6281fb5501fabb96e9408d5362754880</anchor>
      <arglist>)(const int8_t *, const int16_t *, int16_t *, int16_t *, int)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>vtrellis</name>
    <filename>structvtrellis.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>num_states</name>
      <anchorfile>structvtrellis.html</anchorfile>
      <anchor>abfba6b0e484ce5aec27f666af150ecfe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int16_t *</type>
      <name>sums</name>
      <anchorfile>structvtrellis.html</anchorfile>
      <anchor>a11b4f7e60c349f51106b9ee31cd97528</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int16_t *</type>
      <name>outputs</name>
      <anchorfile>structvtrellis.html</anchorfile>
      <anchor>a43c6687b3a8b3f19480caa061792d8c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t *</type>
      <name>vals</name>
      <anchorfile>structvtrellis.html</anchorfile>
      <anchor>ada0a2a86453f575c2bda2976b4305c2f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>bitcomp</name>
    <title>Bit compression</title>
    <filename>group__bitcomp.html</filename>
    <file>bitcomp.h</file>
    <file>bitcomp.c</file>
    <member kind="function">
      <type>int</type>
      <name>osmo_t4_encode</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>gaa4f70ee3b6e93fff44240366f0b6fedd</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>t4_rle</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga756816bc8897122169638ebaa12532c4</anchor>
      <arglist>(struct bitvec *bv, unsigned len, bool b)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_term</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga23f45a8097583b94fd090f42cb402bd3</anchor>
      <arglist>[2][64]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_term_length</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga5668d0369e3659129c72d2293da52d7b</anchor>
      <arglist>[2][64]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_make_up_length</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga8149edc38a2202a6fbaf3a39f388e50f</anchor>
      <arglist>[2][15]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const unsigned</type>
      <name>t4_make_up</name>
      <anchorfile>group__bitcomp.html</anchorfile>
      <anchor>ga49df6e5268e7a8b4327e5d61ddc0bb04</anchor>
      <arglist>[2][15]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>bits</name>
    <title>soft, unpacked and packed bits</title>
    <filename>group__bits.html</filename>
    <file>bits.h</file>
    <file>bits.c</file>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIN_SPEC</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab3ca2b9ae4ea991a847081d5c072fda8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIN_PRINT</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gaf1796dd84e28e6cad4e792c886f491fc</anchor>
      <arglist>(byte)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIT_SPEC</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga0edf7ef0d33b16bac63600f37de0478f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIT_PRINT_EX</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga71e06d05678a8e41476c648bfc26a35b</anchor>
      <arglist>(byte, ch)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BIT_PRINT</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga5b7bbe6c4df28755bded35dbcffda2eb</anchor>
      <arglist>(byte)</arglist>
    </member>
    <member kind="typedef">
      <type>int8_t</type>
      <name>sbit_t</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab6b2fe6d30b1abe4a655e9cf033b23ca</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>uint8_t</type>
      <name>ubit_t</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga6a432fe43b85ec8e0d13e7de04a3f8ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>uint8_t</type>
      <name>pbit_t</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga1780d9a13fbdbf69eae79b53092e47db</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_br_mode</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga34685b612429c678efe8c42b2616b12e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_BITS_IN_DWORD</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12ea24af110a553e7ac2b7beaa80455d9e78</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_BYTES_IN_DWORD</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12ea639e01e0c2eb95e2b1ecdee7f9b1fa77</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_BITS_IN_BYTE</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12eadd4dada5dd7984bac5929d303cbb3ea3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_BR_WORD_SWAP</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gga34685b612429c678efe8c42b2616b12eaed9c48da86bcc42f6fd6c33ca458287d</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>osmo_pbit_bytesize</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga2d7ddc29e908961ad898356a720ddd45</anchor>
      <arglist>(unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ubit2pbit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga0396755b3f1fb67dda62c6310bcefae5</anchor>
      <arglist>(pbit_t *out, const ubit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_pbit2ubit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga6061c0bccf3149afbfd3717655926610</anchor>
      <arglist>(ubit_t *out, const pbit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_nibble_shift_right</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gacc781ff2ed10005457258a5f435c96fb</anchor>
      <arglist>(uint8_t *out, const uint8_t *in, unsigned int num_nibbles)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_nibble_shift_left_unal</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga720f02d3e0b8ead8892ea2796551d5cf</anchor>
      <arglist>(uint8_t *out, const uint8_t *in, unsigned int num_nibbles)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_ubit2sbit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga9a76a29b0916e9cd26c5ca65dbbfb325</anchor>
      <arglist>(sbit_t *out, const ubit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sbit2ubit</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga520d72b80bd83e41b58afe012005984f</anchor>
      <arglist>(ubit_t *out, const sbit_t *in, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ubit2pbit_ext</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga55b990334c0b0188134d42b6a201d6bc</anchor>
      <arglist>(pbit_t *out, unsigned int out_ofs, const ubit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_pbit2ubit_ext</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7978cf8714618d6682751058818444c6</anchor>
      <arglist>(ubit_t *out, unsigned int out_ofs, const pbit_t *in, unsigned int in_ofs, unsigned int num_bits, int lsb_mode)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_bit_reversal</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gae4f3c9fa5d7ac188213d59dd8f83da40</anchor>
      <arglist>(uint32_t x, enum osmo_br_mode k)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_revbytebits_32</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7c83c316140d1209f4b2dc83b3eea5cf</anchor>
      <arglist>(uint32_t x)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_revbytebits_8</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gafe16634bf4f34bd4dd0f7bc5dcf54e33</anchor>
      <arglist>(uint8_t x)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_revbytebits_buf</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gab44abd4982a164c8e2e5588d9fd81852</anchor>
      <arglist>(uint8_t *buf, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_rol16</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>gac3e432aa41d4435a5d206da5b7f9a7e6</anchor>
      <arglist>(uint16_t in, unsigned shift)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const uint8_t</type>
      <name>flip_table</name>
      <anchorfile>group__bits.html</anchorfile>
      <anchor>ga7cc2859ee2b88036f7229b3e5102dfbe</anchor>
      <arglist>[256]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>bitvec</name>
    <title>Bit vectors</title>
    <filename>group__bitvec.html</filename>
    <file>bitvec.h</file>
    <file>bitvec.c</file>
    <class kind="struct">bitvec</class>
    <member kind="define">
      <type>#define</type>
      <name>BITNUM_FROM_COMP</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga586608cc901ec22be0d175eb8d320a00</anchor>
      <arglist>(byte, bit)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>bit_value</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga9f16b701956714c5f84b0a6120d131ea</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>ZERO</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaae117e3533122c80b262257b49b21cddf</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>ONE</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaa7a725f13af144bdef532d0389ba75e0d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>L</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaaef31cc6fe9479955961311ee18ac205f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>H</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gga9f16b701956714c5f84b0a6120d131eaa5008b1179f399a2273fd3f6a7fc3b292</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>enum bit_value</type>
      <name>bitvec_get_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaafa5522adcd980634faa6059b9aee3a1</anchor>
      <arglist>(const struct bitvec *bv, unsigned int bitnr)</arglist>
    </member>
    <member kind="function">
      <type>enum bit_value</type>
      <name>bitvec_get_bit_pos_high</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga958c055f2e6c1983de24f970fcf351b2</anchor>
      <arglist>(const struct bitvec *bv, unsigned int bitnr)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_get_nth_set_bit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga586f2e477420cf97ff85fb5029409528</anchor>
      <arglist>(const struct bitvec *bv, unsigned int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga58af5972b3f9f9590ab677591ea08654</anchor>
      <arglist>(struct bitvec *bv, unsigned int bitnr, enum bit_value bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaaaec65c173424583952f3f8c87b8d9e0</anchor>
      <arglist>(struct bitvec *bv, enum bit_value bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_bit_high</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga9bc267f4f06fbc4d51754144ad195e01</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga8a35d07a2716e1d6d816a4028612e869</anchor>
      <arglist>(struct bitvec *bv, const enum bit_value *bits, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_u64</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3bc972c0ec080f82adb7cc1328c85e1c</anchor>
      <arglist>(struct bitvec *bv, uint64_t v, uint8_t num_bits, bool use_lh)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_uint</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gada7f0c0bad40354d9323db1ef53da13b</anchor>
      <arglist>(struct bitvec *bv, unsigned int ui, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_uint</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaca0563425ea4947dacaf33ce23cbe817</anchor>
      <arglist>(struct bitvec *bv, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_find_bit_pos</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga7366e9cd542a95177d1d906b1a83200d</anchor>
      <arglist>(const struct bitvec *bv, unsigned int n, enum bit_value val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_spare_padding</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga6c6bf6ae771c101a05b3695fff54e593</anchor>
      <arglist>(struct bitvec *bv, unsigned int up_to_bit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_get_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga531d7610f179bbcb46cbe2fe8fafbc9e</anchor>
      <arglist>(struct bitvec *bv, uint8_t *bytes, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_set_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gae64f81294cb6f0521d7b03addcbedee2</anchor>
      <arglist>(struct bitvec *bv, const uint8_t *bytes, unsigned int count)</arglist>
    </member>
    <member kind="function">
      <type>struct bitvec *</type>
      <name>bitvec_alloc</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga4fab97ef97d237370c1147e765f80a16</anchor>
      <arglist>(unsigned int size, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_free</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaed6f952768bfdfbb09491195cba83232</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_unhex</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gae6aad886f187d967552ab8807dc84048</anchor>
      <arglist>(struct bitvec *bv, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_pack</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga309e4e3f006f160f016eca5ff9d29411</anchor>
      <arglist>(const struct bitvec *bv, uint8_t *buffer)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_unpack</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gad4c8196ee9a8cab04af60577ea0fcadf</anchor>
      <arglist>(struct bitvec *bv, const uint8_t *buffer)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>bitvec_read_field</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga465b2992b4abf3a6bd88244fb012215e</anchor>
      <arglist>(struct bitvec *bv, unsigned int *read_index, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_write_field</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gab76ababf6e79ccb51314d7e74381881a</anchor>
      <arglist>(struct bitvec *bv, unsigned int *write_index, uint64_t val, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>bitvec_fill</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga58e79f89821667662d35ac16f296517f</anchor>
      <arglist>(struct bitvec *bv, unsigned int num_bits, enum bit_value fill)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>bit_value_to_char</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3ff0dbe3fbc6eb1b6c4a93a680e5d1c0</anchor>
      <arglist>(enum bit_value v)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_to_string_r</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5c0c73912905c1f4400869da0a7bb439</anchor>
      <arglist>(const struct bitvec *bv, char *str)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_zero</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gab3953b2f83b395699039b565edc803a3</anchor>
      <arglist>(struct bitvec *bv)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>bitvec_rl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaacff55d1b7b4749bb47998bff2ab69f9</anchor>
      <arglist>(const struct bitvec *bv, bool b)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>bitvec_rl_curbit</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga3dd2844a5868df3c3e33ccf04e9179cb</anchor>
      <arglist>(struct bitvec *bv, bool b, unsigned int max_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_shiftl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5e336973391eb0e24d6973ec51fdda00</anchor>
      <arglist>(struct bitvec *bv, unsigned int n)</arglist>
    </member>
    <member kind="function">
      <type>int16_t</type>
      <name>bitvec_get_int16_msb</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga0a6fbad0ee12ac9b17af6eb0b49fce7a</anchor>
      <arglist>(const struct bitvec *bv, unsigned int num_bits)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>bitvec_add_array</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>gaec9f2c4612b55bbbd840187f46d92e9c</anchor>
      <arglist>(struct bitvec *bv, const uint32_t *array, unsigned int array_len, bool dry_run, unsigned int num_bits)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>bitvec_used_bytes</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga634c68602acc9f1d1de490ac1c53e293</anchor>
      <arglist>(const struct bitvec *bv)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>bitvec_tailroom_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga79117cb575fe0c1e334fa727f8fe8d1d</anchor>
      <arglist>(const struct bitvec *bv)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>bytenum_from_bitnum</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga47c5a8afa396a44c819ac4e938552784</anchor>
      <arglist>(unsigned int bitnum)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint8_t</type>
      <name>bitval2mask</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga46d71adbe96a25e3eea080bcc0eca79e</anchor>
      <arglist>(enum bit_value bit, uint8_t bitnum)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned</type>
      <name>leading_bits</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga118debf7503fc8beaafc54d6b7b404f7</anchor>
      <arglist>(uint8_t x, bool b)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>bitvec_shiftl</name>
      <anchorfile>group__bitvec.html</anchorfile>
      <anchor>ga5037965c835b03f55f87cb0ab99f0cac</anchor>
      <arglist>(struct bitvec *bv, unsigned n)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>conv</name>
    <title>Convolutional encoding and decoding routines</title>
    <filename>group__conv.html</filename>
    <file>conv.h</file>
    <file>conv.c</file>
    <class kind="struct">osmo_conv_code</class>
    <class kind="struct">osmo_conv_encoder</class>
    <class kind="struct">osmo_conv_decoder</class>
    <member kind="define">
      <type>#define</type>
      <name>MAX_AE</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga59a8d9c00939e78d198be14587d700b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_conv_term</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaf0fd132530ce2b394bad052c7242590e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>CONV_TERM_FLUSH</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ggaf0fd132530ce2b394bad052c7242590ea255ffa13977bc3a7513d90485123e7c2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>CONV_TERM_TRUNCATION</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ggaf0fd132530ce2b394bad052c7242590eadd3d6c82aa9a0be1f38479f89d6c1b04</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>CONV_TERM_TAIL_BITING</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ggaf0fd132530ce2b394bad052c7242590ea63bb13a152bdb0b61594e10aabe990c1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_get_input_length</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa1382de36811cc10f218b877cad5c2d5</anchor>
      <arglist>(const struct osmo_conv_code *code, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_get_output_length</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga278e64b79e6b589c835a0c401fde3660</anchor>
      <arglist>(const struct osmo_conv_code *code, int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_encode_init</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga729a0ee108fb0f830aef9652acb1f998</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const struct osmo_conv_code *code)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_encode_load_state</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gacd456a6e66cd06364000d83b9d4a9c5f</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const ubit_t *input)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode_raw</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga15d88c910f3072194278d42582162872</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, const ubit_t *input, ubit_t *output, int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode_flush</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gac54f3af7b08df20b530694ee3a660918</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_encode</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga928c04825469cc3481be1717d69534d6</anchor>
      <arglist>(const struct osmo_conv_code *code, const ubit_t *input, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_init</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8d62497e9411049141f699d67068b1ab</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const struct osmo_conv_code *code, int len, int start_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_reset</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga5b03fc1ff68f02690c1e6536f4a44562</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, int start_state)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_rewind</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga118b5aec8b6ad0eb45f0cb2bc96525af</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_conv_decode_deinit</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gac5eaa9e63f2f78c65070dfdbd8f8cd88</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_scan</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8c0b5474a256cc21ba605bf2594468bc</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const sbit_t *input, int n)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_flush</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad6eea080a67fdcecfc6d108d07d37c3c</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, const sbit_t *input)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_get_best_end_state</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad2d7bb7224a7362c048f3c147c09c106</anchor>
      <arglist>(struct osmo_conv_decoder *decoder)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_get_output</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga123033117643f7c2ea610cbc21cfeeb7</anchor>
      <arglist>(struct osmo_conv_decoder *decoder, ubit_t *output, int has_flush, int end_state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga8eb8fcdfe0d49890927a6ce7bfc921dc</anchor>
      <arglist>(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>_conv_encode_do_output</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga9f4a15512d2781731ef7bbd05c834ad7</anchor>
      <arglist>(struct osmo_conv_encoder *encoder, uint8_t out, ubit_t *output)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_conv_decode_acc</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga609c3f0603a35f2a5c3b55ab4ef30d42</anchor>
      <arglist>(const struct osmo_conv_code *code, const sbit_t *input, ubit_t *output)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>crc</name>
    <title>Osmocom CRC routines</title>
    <filename>group__crc.html</filename>
    <file>crc16.h</file>
    <file>crcgen.h</file>
    <file>crc16.c</file>
    <class kind="struct">osmo_crc16gen_code</class>
    <class kind="struct">osmo_crc32gen_code</class>
    <class kind="struct">osmo_crc64gen_code</class>
    <class kind="struct">osmo_crc8gen_code</class>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga58cd4fba87bbaf0f343bd33180eebe42</anchor>
      <arglist>(uint16_t crc, uint8_t const *buffer, size_t len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_crc16_byte</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga4e06f5f025021925caffc89c203ca63c</anchor>
      <arglist>(uint16_t crc, const uint8_t data)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16_ccitt</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaad60da91cb9972f08402e66fe456faa3</anchor>
      <arglist>(uint16_t crc, uint8_t const *buffer, size_t len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>osmo_crc16_ccitt_byte</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gae9bbf080cb79448668ff0421a8923876</anchor>
      <arglist>(uint16_t crc, const uint8_t data)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_crc16gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga5f2be129743f4ef86a0dc8254e7ef2db</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc16gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga9a00e7f03b13fafc300c472041232a13</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc16gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga78c47159065aced37cb21d78dc5f7a66</anchor>
      <arglist>(const struct osmo_crc16gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_crc32gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga38fd8d69d0e56e7ac9c424d9c1201da3</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc32gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gacd9e567dca7fe9704c4a3091fb73f731</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc32gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gafd51fe33e5139ac2ac74b235864bc5f6</anchor>
      <arglist>(const struct osmo_crc32gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>osmo_crc64gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaea21afc395bb6817b77ff5bd7a66e1b6</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc64gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gae8e3f4375b32508b040ce49e948b06d5</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc64gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gaa78449595b3ce3ff202d3f898a85f995</anchor>
      <arglist>(const struct osmo_crc64gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>osmo_crc8gen_compute_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga1549c35fe5c50ec456a7bcbe65573e62</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_crc8gen_check_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga66f9c6afefc4dfe9baacdaf75ac1d95a</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, const ubit_t *crc_bits)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_crc8gen_set_bits</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gac88fe09d8beb2a70f1ec43f87920ee73</anchor>
      <arglist>(const struct osmo_crc8gen_code *code, const ubit_t *in, int len, ubit_t *crc_bits)</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga539c9a3a9def4b974c3957a9d843fc03</anchor>
      <arglist>[256]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_ccitt_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gabc80ae8a51f5ed975c980dee63129818</anchor>
      <arglist>[256]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga539c9a3a9def4b974c3957a9d843fc03</anchor>
      <arglist>[256]</arglist>
    </member>
    <member kind="variable">
      <type>uint16_t const</type>
      <name>osmo_crc16_ccitt_table</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>gabc80ae8a51f5ed975c980dee63129818</anchor>
      <arglist>[256]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>utils</name>
    <title>General-purpose utility functions</title>
    <filename>group__utils.html</filename>
    <file>defs.h</file>
    <file>panic.h</file>
    <file>utils.h</file>
    <file>macaddr.c</file>
    <file>panic.c</file>
    <file>plugin.c</file>
    <file>strrb.c</file>
    <file>utils.c</file>
    <class kind="struct">value_string</class>
    <class kind="struct">osmo_strbuf</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_GNUC_PREREQ</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga74e01f67651f36d2eb902d318fb3f1b5</anchor>
      <arglist>(maj, min)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae50be441dbfc7f95c61fdde4cdfb111</anchor>
      <arglist>(text)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9fc6cb4f6eae2ccd7fb2ec67a38b6fb8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED_OUTSIDE</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga18c73792dc759e9a929f5feda0d22f6e</anchor>
      <arglist>(text)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>ARRAY_SIZE</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6242a25f9d996f0cc4f4cdb911218b75</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MAX</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae29f3c348613687ee200b5632cf25baa</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MIN</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1f5ad4e4f1d11d303c80570dfe535b43</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_CMP</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga85b341fffd41bb9900b0ede1f24295f0</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRINGIFY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga99c393c0cc777531381ef27b9e63fa01</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRINGIFY_VAL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9273786c95d1934af2aa371d63c7611a</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_VALUE_STRING</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaec58324388fc88645f98b409bfedf1b3</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_BYTES_FOR_BITS</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga067f0d8cff5425054650f5562d25e6a4</anchor>
      <arglist>(BITS)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRLCPY_ARRAY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga355219208ac32aa4ce67361306c45f33</anchor>
      <arglist>(array, src)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LIKELY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga86f03e8039d84cdb5cd191561bb20815</anchor>
      <arglist>(exp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_UNLIKELY</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga02420271059f041f43be5593c8378226</anchor>
      <arglist>(exp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_static_assert</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa235735a8fc8c2dc05243d6c8d355cc9</anchor>
      <arglist>(exp, name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SNPRINTF_RET</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae2fd89d51ccb1101e04eb2d2c6d57cb0</anchor>
      <arglist>(ret, rem, offset, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_ASSERT</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga0e15c1ca106fdf15e53b6b8cb30e87dd</anchor>
      <arglist>(exp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_talloc_asprintf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab694a7bcd176825e1b7fd43fdd13eeaa</anchor>
      <arglist>(ctx, dest, fmt, args ...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MOD_FLR</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaba46e9a38032320a7cc816056d94177f</anchor>
      <arglist>(x, y)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_MOD_EUC</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5590f4ac10e4986cd36ac9cc23021c8f</anchor>
      <arglist>(x, y)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_APPEND</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gafff80b7c628a7b9138d0d663f6554de2</anchor>
      <arglist>(STRBUF, func, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_PRINTF</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5d295313b60e7dfe54cd0cd091733d49</anchor>
      <arglist>(STRBUF, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_REMAIN</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac498e594ee1e828ecac2f13907a73bc6</anchor>
      <arglist>(STRBUF)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_CHAR_COUNT</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga35daf5bea23a8e172e32f8e321b191c2</anchor>
      <arglist>(STRBUF)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_APPEND_NOLEN</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaba053478cf0abc6d10ada0851e796a4b</anchor>
      <arglist>(STRBUF, func, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_DROP_TAIL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8aca577fe1c05f829a5399d141e4aa2c</anchor>
      <arglist>(STRBUF, N_CHARS)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STRBUF_ADDED_TAIL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5e4bfb6fa08dec1257c3e6b4e6d442dd</anchor>
      <arglist>(STRBUF, N_CHARS)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_NAME_C_IMPL</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae8fb831ea7b48b5d54f3a5a5f0a30bf</anchor>
      <arglist>(CTX, INITIAL_BUFSIZE, ON_ERROR, FUNC_BUF, FUNC_BUF_ARGS...)</arglist>
    </member>
    <member kind="typedef">
      <type>void(*</type>
      <name>osmo_panic_handler_t</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga23bc29d21400af02d00e4741d96b8e73</anchor>
      <arglist>)(const char *fmt, va_list args)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_panic</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae8ebb6efd9b30d8d8940f6d71dc32833</anchor>
      <arglist>(const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_set_panic_handler</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga68ffd899763d4c8d24a8df1708b3fe9d</anchor>
      <arglist>(osmo_panic_handler_t h)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>get_value_string</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaf5e6416f5d73a1ff2e7bdb0e434d10d7</anchor>
      <arglist>(const struct value_string *vs, uint32_t val)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>get_value_string_or_null</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac44be7d0bc776c31efd951653bcbe0cd</anchor>
      <arglist>(const struct value_string *vs, uint32_t val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>get_string_value</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4df5d6ff3d338b9cf4ca59d2cc884d7f</anchor>
      <arglist>(const struct value_string *vs, const char *str)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>osmo_bcd2char</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaaf78cfb7a88674f118451b9279306c22</anchor>
      <arglist>(uint8_t bcd)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>osmo_char2bcd</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae5cbea0fd5e1594354d115912d46454c</anchor>
      <arglist>(char c)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_bcd2str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga422bbc07222f809d350ad39fb894c803</anchor>
      <arglist>(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str2bcd</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab595e5dac6365b78f85b07bb792da4de</anchor>
      <arglist>(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_hexparse</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa417dc14b499d59106491b55a1c74b62</anchor>
      <arglist>(const char *str, uint8_t *b, unsigned int max_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_ubit_dump_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga48a25995cfdcb169407c0285e318b5ab</anchor>
      <arglist>(char *buf, size_t buf_len, const uint8_t *bits, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_ubit_dump</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga5df14e6f8be6d0581b9ef9138b8cc85f</anchor>
      <arglist>(const uint8_t *bits, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadfc3801536ff055305f7b2563539237f</anchor>
      <arglist>(const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae0e18c985d66a2affda7e8ab54a13f9e</anchor>
      <arglist>(const void *ctx, const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_nospc</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga58cacabcd4862f29a9aa57dd2627c976</anchor>
      <arglist>(const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_hexdump_nospc_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaedfb568cb4c765446cc1beab4db24b5c</anchor>
      <arglist>(const void *ctx, const unsigned char *buf, int len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_hexdump_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2dd24d5b9cab288e90a2067c8dbc9a78</anchor>
      <arglist>(char *out_buf, size_t out_buf_size, const unsigned char *buf, int len, const char *delim, bool delim_after_last)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_osmo_hexdump_nospc</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8c02a287e85ffb5defb781447366b8b3</anchor>
      <arglist>(const unsigned char *buf, int len) __attribute__((__deprecated__))</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_str2lower</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab4197cdbb099e3677ebe9bd3538a6d85</anchor>
      <arglist>(char *out, const char *in) OSMO_DEPRECATED(&quot;Use osmo_str_tolower() or osmo_str_tolower_buf() instead</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_str2upper</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaeeb71577609999862abe6abde44153fc</anchor>
      <arglist>(char *out, const char *in) OSMO_DEPRECATED(&quot;Use osmo_str_toupper() or osmo_str_toupper_buf() instead</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_str_tolower_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga8912910863d88f52b9d62220ee66feed</anchor>
      <arglist>(char *dest, size_t dest_len, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_str_tolower</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad40fab125b7c9f19ef1789f299a7617d</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_str_tolower_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga20e4677fb667ab35e8cdc556f46f0043</anchor>
      <arglist>(const void *ctx, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_str_toupper_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga7134740c825b2f4b604e825aa6f06c58</anchor>
      <arglist>(char *dest, size_t dest_len, const char *src)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_str_toupper</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga02a608b84c87fa5cd65dcefc4c56b552</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_str_toupper_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga26450c1810f5f49e46865c9ea16737c0</anchor>
      <arglist>(const void *ctx, const char *src)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_talloc_replace_string</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga44e4192da7885c2f45e8d46cb9a6c0c1</anchor>
      <arglist>(void *ctx, char **dst, const char *newstr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_talloc_replace_string_fmt</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3c2b44ccd3575ebf985c63fab6158cd6</anchor>
      <arglist>(void *ctx, char **dst, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_constant_time_cmp</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga9617b49a3abc34328ce8fa3eafcdc938</anchor>
      <arglist>(const uint8_t *exp, const uint8_t *rel, const int count)</arglist>
    </member>
    <member kind="function">
      <type>uint64_t</type>
      <name>osmo_decode_big_endian</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga527e54191de66b00edd22500017da9ad</anchor>
      <arglist>(const uint8_t *data, size_t data_len)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t *</type>
      <name>osmo_encode_big_endian</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab461793c9157461119e621710f3f340c</anchor>
      <arglist>(uint64_t value, size_t data_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strlcpy</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2e880620479e4b79e28cc817cf451f9c</anchor>
      <arglist>(char *dst, const char *src, size_t siz)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strnchr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3a809d9d2539c0bb3683ae4f0d16decc</anchor>
      <arglist>(const char *str, size_t str_size, char c)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_is_hexstr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab40f5a73ddd1f2c641ed0da0ca08093d</anchor>
      <arglist>(const char *str, int min_digits, int max_digits, bool require_even)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_identifier_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadfd0a4c05af8693393a7d0afa6899ff3</anchor>
      <arglist>(const char *str)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_separated_identifiers_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gabac697c1ef493cb5691eb5f11c4af984</anchor>
      <arglist>(const char *str, const char *sep_chars)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_identifier_sanitize_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga7165f91d0b488d150f8ba3bc83cba590</anchor>
      <arglist>(char *str, const char *sep_chars, char replace_with)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_escape_cstr_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab2348926540f8c8a56f4e6a17c996f7f</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_cstr_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab8a8241576fe2a82726e0ac2d2e624f5</anchor>
      <arglist>(void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_quote_cstr_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga20f2471a0f60241c8e63c9ee18217b41</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_cstr_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga26e74d38fd7a65f5a6ea35161c656e90</anchor>
      <arglist>(void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_escape_str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab9fb9032407e96924732bf60f4476195</anchor>
      <arglist>(const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_escape_str_buf3</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6b4866958eb385b561fc1fa91db242e7</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_str_buf2</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab6d6c37d5cc2807eb63b41498f38fb9d</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_escape_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad3cf1d094e625a962737b4ba9c2a5632</anchor>
      <arglist>(const char *str, int in_len, char *buf, size_t bufsize)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_escape_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga46ac4f967deb6a2e8c4a1930273bfbbd</anchor>
      <arglist>(const void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_quote_str</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab25c98708ddc0828695a54a72c711b62</anchor>
      <arglist>(const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_quote_str_buf3</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaad5dccba528c2ea4f9156dc61539ce79</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_str_buf2</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4f3b36bc5fd6e474f7f4caa67eb966c2</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_quote_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad5c8e9dbe2d66556fde2a49418d2db89</anchor>
      <arglist>(const char *str, int in_len, char *buf, size_t bufsize)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_quote_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga333f103771c3b46336103b57e2bc047c</anchor>
      <arglist>(const void *ctx, const char *str, int in_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_print_n</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga412b892efd1aa17d024863cd103f3fbc</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, size_t n)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_isqrt32</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga96865bcbbc856166d1b0fbbd00bb9e38</anchor>
      <arglist>(uint32_t x)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>osmo_luhn</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga780f2653cc84daa994053e5f54349057</anchor>
      <arglist>(const char *in, int in_len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>_osmo_strbuf_remain</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2505d8e3b82c608039ef6df2897ec561</anchor>
      <arglist>(const struct osmo_strbuf *sb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>_osmo_strbuf_char_count</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4216b0fe4cfd873c359bcf34a4dd7fc6</anchor>
      <arglist>(const struct osmo_strbuf *sb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_strbuf_drop_tail</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga2f3bd04cb9d1371b4e1b3ff0029f7238</anchor>
      <arglist>(struct osmo_strbuf *sb, size_t n_chars)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_strbuf_added_tail</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1b89d94b3562b0b3261aff7c1ce4c395</anchor>
      <arglist>(struct osmo_strbuf *sb, size_t n_chars)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_str_startswith</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4a6c1ebef675be298cab13bb226e5baa</anchor>
      <arglist>(const char *str, const char *startswith_str)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_float_str_to_int</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaae0fa80cc1a996386d83a5ebb2d57f8b</anchor>
      <arglist>(int64_t *val, const char *str, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_int_to_float_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gafbbe67276ab1495e5d05eed369e65d92</anchor>
      <arglist>(char *buf, size_t buflen, int64_t val, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_int_to_float_str_c</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga89e052fb363e9a8b00a686c6f3db0126</anchor>
      <arglist>(void *ctx, int64_t val, unsigned int precision)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str_to_int64</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga503b0048081b15fd438bedce2173d5db</anchor>
      <arglist>(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_str_to_int</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga4f16a335e3ab7c88595b23acfd7c6693</anchor>
      <arglist>(int *result, const char *str, int base, int min_val, int max_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_macaddr_parse</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga6b5f705acbbc2d4cb226b44af6da4c11</anchor>
      <arglist>(uint8_t *out, const char *in)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_get_macaddr</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga570ff719ef3bd624bffa17e1ddba0f78</anchor>
      <arglist>(uint8_t *mac_out, const char *dev_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_panic_default</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga1a2fe815e479e972592b48d6919b8a4c</anchor>
      <arglist>(const char *fmt, va_list args)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_plugin_load_all</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga298853e248d7557902d4c0b6eb400d01</anchor>
      <arglist>(const char *directory)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_strrb *</type>
      <name>osmo_strrb_create</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaaab7bfea64d0b1b7e86dbd717d253a30</anchor>
      <arglist>(void *talloc_ctx, size_t rb_size)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_strrb_is_empty</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa8d2f58d4f27e99836d85b5e5c568136</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strrb_get_nth</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga284dcee685ff37d0138d1f739ff24d20</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int string_index)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_osmo_strrb_is_bufindex_valid</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gab46115cd7bc48f5b20b7281bf64ef1e2</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int bufi)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strrb_elements</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac730d01ff38c9eb9e9f10ce1f12cf3f0</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_strrb_add</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga3d8e138301a2fc21779b7259831a677c</anchor>
      <arglist>(struct osmo_strrb *rb, const char *data)</arglist>
    </member>
    <member kind="function">
      <type>char</type>
      <name>alias</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gadc9804584fe701ac5eebf9f091f45314</anchor>
      <arglist>(&quot;osmo_hexdump_nospc&quot;)))</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>_osmo_escape_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaa273befac18c6df037af4e01e8fd1cd7</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len, bool legacy_format)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static size_t</type>
      <name>_osmo_quote_str_buf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gaede6980e9fac6f132c8b7a80fa0311bb</anchor>
      <arglist>(char *buf, size_t bufsize, const char *str, int in_len, bool legacy_format)</arglist>
    </member>
    <member kind="variable">
      <type>void to properly check target memory</type>
      <name>bounds</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gac42d57a93bf148fdb275fde47abca8df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static osmo_panic_handler_t</type>
      <name>osmo_panic_handler</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad9bb92023569bababaef4bbf1ed9f99b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread char</type>
      <name>namebuf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga42e7a63c73abd5c30aee0ee87ed6e11a</anchor>
      <arglist>[255]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread char</type>
      <name>capsbuf</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gad408aac8db7d8f74ea76b6012d9c3724</anchor>
      <arglist>[128]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread char</type>
      <name>hexd_buff</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>gae2778983d0cf60080bb3232e764704a2</anchor>
      <arglist>[4096]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const char</type>
      <name>hex_chars</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga88e2bcf3138cbb40f80836c959476257</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const char</type>
      <name>osmo_identifier_illegal_chars</name>
      <anchorfile>group__utils.html</anchorfile>
      <anchor>ga46a5e6d68d174e66705e6a5ab3068166</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>fsm</name>
    <title>Finite State Machine abstraction</title>
    <filename>group__fsm.html</filename>
    <file>fsm.h</file>
    <file>fsm.c</file>
    <class kind="struct">osmo_fsm_state</class>
    <class kind="struct">osmo_fsm</class>
    <class kind="struct">osmo_fsm_inst</class>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMSL</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga6f501668d6d818fc87f1b18425356b19</anchor>
      <arglist>(fi, subsys, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMSLSRC</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9f0a5bfa21b49696349ed9dd7dad8af1</anchor>
      <arglist>(fi, subsys, level, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSML</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga248ade15a1d1ff4f70788ef38e8b6245</anchor>
      <arglist>(fi, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMLSRC</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaaf05b1a8f42eb3f914af695c4d87a770</anchor>
      <arglist>(fi, level, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSM</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga66da89c33fe5a79d4672674125ebbff3</anchor>
      <arglist>(fi, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPFSMSRC</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga366288002411697a3687219b66c8f2e4</anchor>
      <arglist>(fi, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_T_FMT</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0eea157837d423a623cfecd581c24de3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_T_FMT_ARGS</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga2f012bcf729f8788d21db8c11f755d51</anchor>
      <arglist>(T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gac2bc3009053763ca99356e824529a2e4</anchor>
      <arglist>(fi, new_state, timeout_secs, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga06bd66dd40203f72953962be8e4e58cb</anchor>
      <arglist>(fi, new_state, timeout_ms, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_keep_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga605785659c0482d32c83748f88904ace</anchor>
      <arglist>(fi, new_state)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_keep_or_start_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gacb4924436f161531a6dd319b63a44878</anchor>
      <arglist>(fi, new_state, timeout_secs, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_state_chg_keep_or_start_timer_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gabaa3b0fde0c5b1993deb078374f84ffc</anchor>
      <arglist>(fi, new_state, timeout_ms, T)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_dispatch</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga75d93c070baff6dd6e555d91a7ccc62f</anchor>
      <arglist>(fi, event, data)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_term</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga22397fdc69a4f1c303bb0b2694d5f2aa</anchor>
      <arglist>(fi, cause, data)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_term_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga73462b9dcd7c5e33186e3319672045d1</anchor>
      <arglist>(fi, cause, data)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_fsm_inst_broadcast_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gacd75fb4de417fb951b17bba2a554c877</anchor>
      <arglist>(fi, cause, data)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_fsm_term_cause</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1c5b754d5fcf2bfe2f8bf4d4afedb413</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_PARENT</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413ab30c67e0d20e1f8c7c28ddd3a20eef9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_REQUEST</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413a3202db525e55bc84276bf4e6aa7fcdd4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_REGULAR</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413aa5b1f64cc6be12a3d4e8d5c92ec068bd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_ERROR</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413a7395c7e1bc2b1182bf3cfe2c529bd800</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_FSM_TERM_TIMEOUT</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gga1c5b754d5fcf2bfe2f8bf4d4afedb413a8de3cf5fe33fc38b5204577d73845cc1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_fsm_term_cause_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9919c29d9ad5283c475f51c008b52723</anchor>
      <arglist>(enum osmo_fsm_term_cause cause)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_log_addr</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7dacf1bf0ada0d3dc6d2640d24b4aa59</anchor>
      <arglist>(bool log_addr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_log_timeouts</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9f3dad4e32e230e416a8c93401676d42</anchor>
      <arglist>(bool log_timeouts)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_term_safely</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7ae199b946d722bc789b1c59f7c3aa15</anchor>
      <arglist>(bool term_safely)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_set_dealloc_ctx</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf031d280ac7d4fc8ac17e8560e5370a8</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_register</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga444610bbb35d19b21918e61ec4431fa7</anchor>
      <arglist>(struct osmo_fsm *fsm)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_unregister</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga42d9cd0b40e6ffc26c8285861776d8e0</anchor>
      <arglist>(struct osmo_fsm *fsm)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm *</type>
      <name>osmo_fsm_find_by_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1e43eb41f84e07b9606c9cdcba87c6c2</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_find_by_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gafce8ab2dfb4f98c6ecd2eb064aa48746</anchor>
      <arglist>(const struct osmo_fsm *fsm, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_find_by_id</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf4d7f891b0a2110daa84136b5ea8f540</anchor>
      <arglist>(const struct osmo_fsm *fsm, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_alloc</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gab86e5e11480147ed8e39d9dd2a6884e5</anchor>
      <arglist>(struct osmo_fsm *fsm, void *ctx, void *priv, int log_level, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fsm_inst *</type>
      <name>osmo_fsm_inst_alloc_child</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7fd84a05fb6fd849d46219730202e5d3</anchor>
      <arglist>(struct osmo_fsm *fsm, struct osmo_fsm_inst *parent, uint32_t parent_term_event)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_unlink_parent</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7f88d5cf42077f32bc5cf667ca310d9d</anchor>
      <arglist>(struct osmo_fsm_inst *fi, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_change_parent</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4411b21a211cd81f2e858a146f2c4cca</anchor>
      <arglist>(struct osmo_fsm_inst *fi, struct osmo_fsm_inst *new_parent, uint32_t new_parent_term_event)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fsm_inst_free</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4cd3ac472cde5e97f156d398863e2081</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gad28f180033fb18442307fed1d27c3c48</anchor>
      <arglist>(struct osmo_fsm_inst *fi, const char *id)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id_f</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4373cf363f849faed4fc9885c55a1d22</anchor>
      <arglist>(struct osmo_fsm_inst *fi, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fsm_inst_update_id_f_sanitize</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0b17e0f3c1b06fff03a0277237145d28</anchor>
      <arglist>(struct osmo_fsm_inst *fi, char replace_with, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_event_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga242186790266b18531bb9fde93b2487d</anchor>
      <arglist>(const struct osmo_fsm *fsm, uint32_t event)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_inst_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1279f48c166034158dd79d0bb25664b7</anchor>
      <arglist>(const struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_fsm_state_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gae7114ae434235be6e42db8b8231054a8</anchor>
      <arglist>(const struct osmo_fsm *fsm, uint32_t state)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_fsm_inst_state_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaf1e0858354f77cffb1386a350b694fe4</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga7608be014cba6f4310e880481b309a94</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga0a7ae7d6b80ea6e0123a78a850474f02</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gaa8eef574f84a42c60ce12646b0618e0e</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_or_start_timer</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga159227b2c4b5ee4bb668e3460adf7c47</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_state_chg_keep_or_start_timer_ms</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga423b10042103cfa1e0ec3713e3d477a8</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_fsm_inst_dispatch</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga523a1a8428c37cb1d30fa1c3c11e6db1</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t event, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_term</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga9b46a56e04ac98b7f20cae167e952a12</anchor>
      <arglist>(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_term_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga2d5fc607d8297c048af8ae7f3e9a6ac8</anchor>
      <arglist>(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_osmo_fsm_inst_broadcast_children</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4ec2d59ba8fa1effca075762cde6156b</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t event, void *data, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga899732f691814df3bf90f25bc7ff5a0b</anchor>
      <arglist>(osmo_g_fsms)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>fsm_free_or_steal</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga030dcf02919dfae0a95a13626f66f98d</anchor>
      <arglist>(void *talloc_object)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fsm_defer_free</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4e180dcf9205a194dafffd7d3afa928a</anchor>
      <arglist>(void *talloc_object)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>fsm_tmr_cb</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gadd6cf7d6e42ca941baaf5840a07922c8</anchor>
      <arglist>(void *data)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>update_name</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga1380b8cda91ee170848d1e9646135b93</anchor>
      <arglist>(struct osmo_fsm_inst *fi)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>state_chg</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga96fb76c74cd793b6513b33f4041540a3</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t new_state, bool keep_timer, unsigned long timeout_ms, int T, const char *file, int line)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_fsm_term_cause_names</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4c11df3f81765eb1ee987d95d3f0d07e</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>fsm_log_addr</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga90bb7135bd876e3de07ecb1c8d74047b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>fsm_log_timeouts</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>gab4ec2d8fbd00ee01c1483e8693f1d476</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>fsm_term_safely_enabled</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga821e471c0c64e832f6f5d8ab621676ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct @35</type>
      <name>fsm_term_safely</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga27502d517e5030ea4d091947186e55ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_fsm_term_cause_names</name>
      <anchorfile>group__fsm.html</anchorfile>
      <anchor>ga4c11df3f81765eb1ee987d95d3f0d07e</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>gsmtap</name>
    <title>GSMTAP</title>
    <filename>group__gsmtap.html</filename>
    <file>gsmtap_util.h</file>
    <file>gsmtap_util.c</file>
    <class kind="struct">gsmtap_inst</class>
    <member kind="function">
      <type>uint8_t</type>
      <name>chantype_rsl2gsmtap2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga2fa99893aabc3b82458803a914fee39a</anchor>
      <arglist>(uint8_t rsl_chantype, uint8_t link_id, bool user_plane)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t</type>
      <name>chantype_rsl2gsmtap</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga14574d2d831766b848e5ff93b89e8338</anchor>
      <arglist>(uint8_t rsl_chantype, uint8_t link_id)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>chantype_gsmtap2rsl</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga3567072c254391b92eabf48ed71f9aac</anchor>
      <arglist>(uint8_t gsmtap_chantype, uint8_t *rsl_chantype, uint8_t *link_id)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gsmtap_makemsg_ex</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4de6489fab3bff7590e53dd9859e3c44</anchor>
      <arglist>(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gsmtap_makemsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga03a4ac0d6f7a80807415476fdc804da6</anchor>
      <arglist>(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_inst_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gad201f805caa17a143201ecce09a21208</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_inst_fd2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gade1327e89e4b4fe0e08bf9947ec99a04</anchor>
      <arglist>(const struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_init_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gadd7e1c24b0af2f07c1df3ef12fd2a3b3</anchor>
      <arglist>(const char *host, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_init_fd2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaac97f186f5b781a7f15bd9273e2821b0</anchor>
      <arglist>(const char *local_host, uint16_t local_port, const char *rem_host, uint16_t rem_port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_add_sink_fd</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga0edfda6bec2d5b85a6b97823c806f676</anchor>
      <arglist>(int gsmtap_fd)</arglist>
    </member>
    <member kind="function">
      <type>struct gsmtap_inst *</type>
      <name>gsmtap_source_init</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga8f0bdeba378d233f34057e63e2d3a6d3</anchor>
      <arglist>(const char *host, uint16_t port, int ofd_wq_mode)</arglist>
    </member>
    <member kind="function">
      <type>struct gsmtap_inst *</type>
      <name>gsmtap_source_init2</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga3e9f314f1a5098f65770a8616d5cac56</anchor>
      <arglist>(const char *local_host, uint16_t local_port, const char *rem_host, uint16_t rem_port, int ofd_wq_mode)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gsmtap_source_free</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac12a6850de80b00a9ce4ab1261a67a55</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_set_nonblock</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac018ffcd4a62f619259e6c7fceb8d9ba</anchor>
      <arglist>(struct gsmtap_inst *gti, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_source_add_sink</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga08387e8de5e7633d897cd6c2f685a467</anchor>
      <arglist>(struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>gsmtap_source_using_wq</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga847f5c0c8e5e9e7f9755c0dd573a7dfe</anchor>
      <arglist>(const struct gsmtap_inst *gti)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_sendmsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga41ee3b7cd837968637a122aa83ea5af3</anchor>
      <arglist>(struct gsmtap_inst *gti, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_sendmsg_free</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaa05d2bb112ac9d2d80ed7dfe2926c519</anchor>
      <arglist>(struct gsmtap_inst *gti, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_send_ex</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaa998fa989a15883ea67ec5eea58a9283</anchor>
      <arglist>(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gsmtap_send</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gae1e4e260037809eb70765c3c6044a2e4</anchor>
      <arglist>(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_gsm_channel_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4f9601754c2db0434194ebdf0742ccb9</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_type_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac6ab8513b1e0e8505b89847a4f9a4a09</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_gsm_channel_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>ga4f9601754c2db0434194ebdf0742ccb9</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>gsmtap_type_names</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gac6ab8513b1e0e8505b89847a4f9a4a09</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>osmo_it_q</name>
    <title>Inter-Thread Queue</title>
    <filename>group__osmo__it__q.html</filename>
    <class kind="struct">osmo_it_q</class>
    <member kind="define">
      <type>#define</type>
      <name>osmo_it_q_enqueue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gab56762c36042bee31d8c139ec5786012</anchor>
      <arglist>(queue, item, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_it_q_dequeue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gac4c85de6f1554e11e03e5c434f1778c3</anchor>
      <arglist>(queue, item, member)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_it_q *</type>
      <name>osmo_it_q_by_name</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>ga2a954821a905521aa4e67f894a64c81a</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_it_q_enqueue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gab463ae4d46ba05c307b17243d2d551b1</anchor>
      <arglist>(struct osmo_it_q *queue, struct llist_head *item)</arglist>
    </member>
    <member kind="function">
      <type>struct llist_head *</type>
      <name>_osmo_it_q_dequeue</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gaf52c8ef0c149718af5117aff6141b9d4</anchor>
      <arglist>(struct osmo_it_q *queue)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_it_q *</type>
      <name>osmo_it_q_alloc</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>ga25f651a278991ee6d95db37ecf811203</anchor>
      <arglist>(void *ctx, const char *name, unsigned int max_length, void(*read_cb)(struct osmo_it_q *q, struct llist_head *item), void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_it_q_destroy</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>ga421df70ee9051af51af594b9fa2d48ff</anchor>
      <arglist>(struct osmo_it_q *q)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_it_q_flush</name>
      <anchorfile>group__osmo__it__q.html</anchorfile>
      <anchor>gae3db370ece9fd33310bc3311cd3830e4</anchor>
      <arglist>(struct osmo_it_q *q)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>linuxlist</name>
    <title>Simple doubly linked list implementation</title>
    <filename>group__linuxlist.html</filename>
    <file>linuxlist.h</file>
    <class kind="struct">llist_head</class>
    <class kind="struct">hlist_head</class>
    <class kind="struct">hlist_node</class>
    <member kind="define">
      <type>#define</type>
      <name>inline</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga00d24c7231be28dbaf71f5408f30e44c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>container_of</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf8c317a42292b61c93aae91e59118a46</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_POISON1</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga0945ceecfc9982e1de4da25f22f180a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_POISON2</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga0fe7e42a7c409f572ce9b990cc77f5e7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_HEAD_INIT</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga01c9f49fcdc7c0b638ad0ff036a2844b</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gadff448c2a512f7f3b1189890d6d6c18a</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INIT_LLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf2e921d75d05e3a076227eda0bbd178e</anchor>
      <arglist>(ptr)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga1f84e98f938d62c8fbef26c9c7ec65c2</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_first_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga240a0e12a637f199fb292a768b405de1</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_last_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga79bdc7c0caf3ce7897d70f68959e437f</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_last</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad7a9c2c7851364a00ccdbf43fe3ff3ef</anchor>
      <arglist>(head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_first_entry_or_null</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga187d083598595d78dc75e8041f21a665</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_last_entry_or_null</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga68f8b64fb9c4b47214edeed13d9fc284</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad96d676e71584c976305ee8a2e4dab8f</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>__llist_for_each</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga2a514bf76d1cb343501cdd9cca2417f9</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_prev</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga77afb9242115b298e62d1bfd46b66588</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga6cf45244851380bd1bb556e22390a792</anchor>
      <arglist>(pos, n, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga97345a3f2569e1fcc0948706602cedd8</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_reverse</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga7a24286ee8e7fb99316d4f9e4c700869</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_continue</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga19392005a8891cc3bc6919f0d9109d40</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga50f1dafb9de33a121a8fc253634d14ca</anchor>
      <arglist>(pos, n, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga6c63172418c37e36295c76256b5bfa22</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>__llist_for_each_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga475083462225f0e64d957390b42e85b0</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_safe_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga46585966f20fc18b5646c6ae7c199bbf</anchor>
      <arglist>(pos, n, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_entry_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad6b23cdc35214b094c05b12bf5e2f6bc</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>llist_for_each_continue_rcu</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaa7b1ce77d0c251afd378010c89eeda72</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HLIST_HEAD_INIT</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga68283f4abad271853d5b25ad697b1b06</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga5110612fedc3e1b54fce4c2143c4c788</anchor>
      <arglist>(name)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INIT_HLIST_HEAD</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga502bdfb9a4a5a0d922363ea1708bf081</anchor>
      <arglist>(ptr)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>READ_ONCE</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga940c919f63536812538bdd9bfab47267</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>WRITE_ONCE</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga866ec3a3adc4638dcef76dbf3d365331</anchor>
      <arglist>(a, b)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae6c5fc3a7207aad6b8ea756eaa8bb043</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gac971440486bd1084a2b110f53a9ad3b7</anchor>
      <arglist>(pos, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga0ac51eeb1d38e770546acbe88d566211</anchor>
      <arglist>(pos, n, head)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_entry_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga9aba32f6dc43ee54db1eebd61df58fb0</anchor>
      <arglist>(ptr, type, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga3782c1eea66f5cacadce6e0175e4650a</anchor>
      <arglist>(pos, head, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry_continue</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga14191525c74317c1eac2b2384f4027e4</anchor>
      <arglist>(pos, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry_from</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gac2dd974efde450fd9c400aa45b39cee5</anchor>
      <arglist>(pos, member)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>hlist_for_each_entry_safe</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae2f7dd7dbbe2f13fa51aca9fcb31a03f</anchor>
      <arglist>(pos, n, head, member)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>prefetch</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae275c0b0ac104e39bc5980a08925ecee</anchor>
      <arglist>(const void *x)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__llist_add</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga27748bed605feed610e4cabb92cc69a8</anchor>
      <arglist>(struct llist_head *_new, struct llist_head *prev, struct llist_head *next)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_add</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga5f132e77289bdaac056f40281dad2158</anchor>
      <arglist>(struct llist_head *_new, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_add_tail</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf20ef02827bff46a825aee413b8817ad</anchor>
      <arglist>(struct llist_head *_new, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__llist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gafd6d2db9c63110be04db5421e66a64d6</anchor>
      <arglist>(struct llist_head *prev, struct llist_head *next)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad17c7ec79e2cfd08c7d7f5a455065d3f</anchor>
      <arglist>(struct llist_head *entry)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_del_init</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga34cd312e2bd3c6a9d6c2ee9f0edd614d</anchor>
      <arglist>(struct llist_head *entry)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_move</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gacb13d12e3ffb0a19db837b56c4df39f9</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_move_tail</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga4486dca126d71c055b4871bbed8e8b83</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>llist_empty</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gac458d7d13167c67bc3591038ef23405d</anchor>
      <arglist>(const struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__llist_splice</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga86930ef85d10c1acd97d858354bd5895</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_splice</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga2ce1fd536f10818240abdfe08a6d9385</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>llist_splice_init</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga53109ddcf1c7c415bbec076e40ee5145</anchor>
      <arglist>(struct llist_head *llist, struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>llist_count</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga00add30f39d6a125d5685dd666f30db0</anchor>
      <arglist>(const struct llist_head *head)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>INIT_HLIST_NODE</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga51c087ca2431577ad4f6f8cc77349b0c</anchor>
      <arglist>(struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>hlist_unhashed</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga7f946d296ab41ce808e96d529a4106d6</anchor>
      <arglist>(const struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>hlist_unhashed_lockless</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gae3985ebce1eb0d0793c579a93a26d0d3</anchor>
      <arglist>(const struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>hlist_empty</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf610dde21167bf116937c81c393a229f</anchor>
      <arglist>(const struct hlist_head *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__hlist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga167c5c3fe3b88a3e499210033585c6d8</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_del</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaa7bb9806633e74fad4c0f4ba8d3ac850</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_del_init</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga2e00d6f98de0c25c46a7645a0b6f4d5f</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_head</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gad7a242949abf03ff2ae417686a4451cd</anchor>
      <arglist>(struct hlist_node *n, struct hlist_head *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_before</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga254a79dcc8e7dd5662a4e67fcd04ed10</anchor>
      <arglist>(struct hlist_node *n, struct hlist_node *next)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_behind</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga1fbe29c1c50047605c98a600f98e5d2b</anchor>
      <arglist>(struct hlist_node *n, struct hlist_node *prev)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_add_fake</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga747b74cb99ecd18d18cc564449082121</anchor>
      <arglist>(struct hlist_node *n)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>hlist_fake</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga31635d5a90d316dc84c467035cf1faa5</anchor>
      <arglist>(struct hlist_node *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>hlist_is_singular_node</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>ga731ab779ea3e4cd83b30d426343c4004</anchor>
      <arglist>(struct hlist_node *n, struct hlist_head *h)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>hlist_move_list</name>
      <anchorfile>group__linuxlist.html</anchorfile>
      <anchor>gaf02cef831e71a3b292a603e8e79947c5</anchor>
      <arglist>(struct hlist_head *old, struct hlist_head *_new)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>logging</name>
    <title>Osmocom logging framework</title>
    <filename>group__logging.html</filename>
    <file>logging.h</file>
    <file>logging.c</file>
    <file>logging_emscripten.c</file>
    <file>logging_file.c</file>
    <file>logging_gsmtap.c</file>
    <file>logging_syslog.c</file>
    <file>logging_systemd.c</file>
    <class kind="struct">log_category</class>
    <class kind="struct">log_info_cat</class>
    <class kind="struct">log_context</class>
    <class kind="struct">log_info</class>
    <class kind="struct">log_target</class>
    <member kind="define">
      <type>#define</type>
      <name>DEBUG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad72dbcf6d0153db1b8d8a58001feed83</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DEBUGP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab805322bc0052e2cb6b6a6557fd59e91</anchor>
      <arglist>(ss, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DEBUGPC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8d8fd840762ec476ed49951dc96ec486</anchor>
      <arglist>(ss, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga7e3a9f703edc9b95a8548a656a6f686d</anchor>
      <arglist>(ss, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga480d46b69590f6adcb75297ccc00a59e</anchor>
      <arglist>(ss, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPSRC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa3186473e49541f29bf4fca6ecca6df3</anchor>
      <arglist>(ss, level, caller_file, caller_line, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGPSRCC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga211311153adb5599da85c35546511952</anchor>
      <arglist>(ss, level, caller_file, caller_line, cont, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_DEBUG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabe173829fa5e5a0f0f1a6d897c332ff0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_INFO</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa379189a8b3f928c55c3f4a43e65f625</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_NOTICE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga176a1eddf217572b01568c9ffbaa92fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_ERROR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga5751e2408c2e9aa0b93aef4aa6a24227</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGL_FATAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga567dc7ed188fed7155178c6aaaf885b7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLGLOBAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4aea31ac198b5eefe88ee0d64f4465e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLLAPD</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac508d5acedd3198df1b0ddab0fdad4a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLINP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab52be37317ff7f1d004ad5cbbfd89a8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMUX</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4fdc5cfc92a902e01350aacbb8cf4f48</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMI</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga01e56d7b252518f706567706c6a2c54a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMIB</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6203cfc0a9d21c35e5a7cc3d217e8c35</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSMS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga672be81f15ed0aec6f1ee432943c2f55</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLCTRL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3be909c171763843e95a8c4bc8a4c65d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLGTP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga367dece4d3de29a2ce0c66a67ec383cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSTATS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac44cdefa09f9f1edb9c324c41aae0dd1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLGSUP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8fbfba066a0152bfbfbc8a35d6a67ae6</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLOAP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga16cc6c43c63789dbd3840b3b00b04b90</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSS7</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6589b380650facce31dcf506403b286a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSCCP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga93f292ab464aa522d229d711a9dbf772</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLSUA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabd33cb9b8a0c705a64eb145132507369</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLM3UA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9911d8286e13f99ca8e92481fcab3d61</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLMGCP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa27eeefc2f66410acdc1ff368cac9fa7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLJIBUF</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8333005c126c0cb33615251a662aa537</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLRSPRO</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacfe520078597b9d7952bd81b97824733</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLNS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6360f368240b0c26f7e6dd99b9e796cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLBSSGP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga243e175dd08dbeedc1615f285fa8dcd5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLNSDATA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafdd2f851a16a7fa99d157caac09d6678</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLNSSIGNAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac296e000fa136e0c02102d35f01e95e1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLIUUP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac86177c4f636081406dc5f42cde3bf18</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLPFCP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga26edc4492cf33f9aba13ccdd6a854013</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLCSN1</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0f6410121e1d40e6b39a9defc3cda48a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLM2PA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6d98f805933df6b05a309d470020e0f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLM2UA</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0adb569cdb9b1f96980e9e3a81e4fb6d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLIO</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae2026d3ccf7e9ca34e3b2f9e9479ed36</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>DLTCAP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9a56876b96c90e2a88c4cfdd71145cb8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_NUM_DLIB</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaecab053fad9c276e06d38883e054a35d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_NORMAL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaeabbb50a435e0776a956c44effa97c80</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_RED</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gada088eba1c7ec85201b0d7827e231818</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_GREEN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf6aeeabed9a289ec900ab054ca42a880</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_YELLOW</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafca3dd5f88c08e8541b520d8ce73a124</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_BLUE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab1d4482277ab53e471965a61d033c59a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_PURPLE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6c51b4bf79120aad0b42105684655733</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_CYAN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga39b88ca09448a54a65bf36c8d945e5c4</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKRED</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga22dbdc0364aba55e3d4fafedb0a4e68a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKGREEN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa7c0a44147d0112e608a34a67ec06279</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKYELLOW</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga72ebb25dc8d4f668c3ac1c6af6c8b7ab</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKBLUE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9eb6b26833e7283a7b4c95c00f5c75e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKPURPLE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga176ea715c3e9759f46812c6556bae5f7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKCYAN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad38cd2f97c66366a1ea07627682af607</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_DARKGREY</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3726ef8ce24622ff62985f7de3841acd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_GREY</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3187fa245f134300fb813201fb3adf4b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_BRIGHTWHITE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4e6cf007df2991f502ac861dec2bad3c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_LOGCOLOR_END</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1c6a567286ae79e3dc219957760b635b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_MAX_CTX</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabaaa5069968fda58cf87533e5118e19b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_MAX_FILTERS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga66d98e30d290f9a0d3d6569d8403ee9f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_FILTER_ALL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga161ff4636148f95a9ed46c5abbd0a7bc</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GPRS_CTX_NSVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaadf767e191da5f43f26eb8d08b5a6557</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GPRS_CTX_BVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga2767cd96c5606f6f01b61306aa18dac3</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_DEPRECATED_OUTSIDE_LIBOSMOCORE_LOG_TARGET</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga5a3f500c1e074b4801ddc4abef44e670</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_MTX_DEBUG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga7686f40221c336a9435bef4373b53acd</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>log_tgt_mutex_lock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac6cbd7eddb65044f30ff543a421ae495</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>log_tgt_mutex_unlock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4070dabf4652e43fd6929fb259a6fa92</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TRACE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9b44d241a9984069d3c9de002b6c149c</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TRACE_ENABLED</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa753ae2ccad22fb27615272c6b2b04e0</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>INT2IDX</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1307d6b14e5c102d9da8abaeea1bfacf</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GSMTAP_MSG_MAX_SIZE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8f9278465e1724f377a119a45b07f2c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>SD_JOURNAL_SUPPRESS_LOCATION</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae2434162e872ec8189ca11e53257fad6</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int</type>
      <name>log_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9aa9411ab93da3b2638bdb5a7689f43f</anchor>
      <arglist>(const struct log_context *ctx, struct log_target *target)</arglist>
    </member>
    <member kind="typedef">
      <type>void</type>
      <name>log_print_filters</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga50a6f260b056b50b322cf32215ca5a6e</anchor>
      <arglist>(struct vty *vty, const struct log_info *info, const struct log_target *tgt)</arglist>
    </member>
    <member kind="typedef">
      <type>void</type>
      <name>log_save_filters</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6684cf1a2e24cc41a5d2ad526d43e0e3</anchor>
      <arglist>(struct vty *vty, const struct log_info *info, const struct log_target *tgt)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_ctx_index</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0b31990f947ded850132fde88eac7269</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_GB_NSVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269ab2b2f65564b8cb93e38408efb8e552aa</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_GB_BVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a499f33e1bba1584a3a79a57331219fe0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_BSC_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a431e5ed8bf229489e36d9a97ed4313a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_VLR_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269afee9d2f4cf2c54e572bb727629d47888</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_L1_SAPI</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a953a8aa7359e6989f7a6f44df15a78b2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_CTX_GB_NSE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a28bca66c7dc4e1d74fcd6a05fa2af41a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_LOG_CTX_COUNT</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga0b31990f947ded850132fde88eac7269a5b769eab13b25bf7b21a07da3cb4091e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_filter_index</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga06c744d8d9104f275d8b8568c09fd144</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_ALL</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144ab84e1400c3d6394a42c59ebb5804d35f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_GB_NSVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144af1c6cd3bc83977353ed364f5f74ac079</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_GB_BVC</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144afd12e35cc7bbb41874f8633d9ecca226</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_BSC_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144ad499c4019c93f32b64d4df742378db08</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_VLR_SUBSCR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144a4e168783da86b54fd539e99a6c506582</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_L1_SAPI</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144af2ce4663bf5459d7b8e5882b14ffc366</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FLT_GB_NSE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144ab863c5978ee5ccb9f98a8fdeac515d16</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_LOG_FLT_COUNT</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga06c744d8d9104f275d8b8568c09fd144a882ba6ec04ed8ab3b8c2298812175e3e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_target_type</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1dc8e73ef848a7dda9388a78342c72af</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_VTY</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa5e7df050860657ceae54c6d8d53daaa6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_SYSLOG</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa7e61ffe8cb20b4306d778f5fddca524d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_FILE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa79c80cbde04026a6d3ce81d52ce952f9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_STDERR</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afaeb9f1a2e04ee58df0f8d382ecb9303db</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_STRRB</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa9fd43c1d92e6b696a6812e843e3c5ac7</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_GSMTAP</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afaf8eb416af6d948db3a2e82aaad21b051</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_SYSTEMD</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afafd02bcfbb8d4243a111bde615e812dfe</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_TGT_TYPE_EMSCRIPTEN</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga1dc8e73ef848a7dda9388a78342c72afa64fcd8801bf985cc4109ba5f4c43f538</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_filename_type</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab022087cde64deb9a1bae1624d774dc9</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_NONE</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ggab022087cde64deb9a1bae1624d774dc9a845f226b47312a372c394187f5de0a56</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_PATH</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ggab022087cde64deb9a1bae1624d774dc9a90a7382992c3cd103edc53a49e9cc365</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_BASENAME</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ggab022087cde64deb9a1bae1624d774dc9a48db77965785dadcff72df967e3b98f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>log_filename_pos</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6e0a93c1ec5d89bbeb811a03a8b03778</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_POS_HEADER_END</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga6e0a93c1ec5d89bbeb811a03a8b03778a61d25ea988748fb625f420d1b2ab393a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>LOG_FILENAME_POS_LINE_END</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gga6e0a93c1ec5d89bbeb811a03a8b03778a55a9648e7b38f83759ea56e54c8d7102</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_vlogp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga607a4b06b2123605f3a3243307aeb7a2</anchor>
      <arglist>(int subsys, int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>logp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab324ed3d4a2cf52b7221f64f6e24ffa5</anchor>
      <arglist>(int subsys, const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>logp2</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae7c013af52c801dbfe79b8a8a3801c5e</anchor>
      <arglist>(int subsys, unsigned int level, const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>void void</type>
      <name>logp_stub</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac80553bb76fe67acb9834a128700c12d</anchor>
      <arglist>(const char *file, int line, int cont, const char *format,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_init</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabf0d1770253db45f43db9344e950a724</anchor>
      <arglist>(const struct log_info *inf, void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_fini</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab764c12d013acf2af98b24058a4bb894</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_check_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6fbd4bc9164c5f5460b1ccbc1007b890</anchor>
      <arglist>(int subsys, unsigned int level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_reset_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf69d0014231702905b70af36ba2161d6</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4e6b63f4ef308f052b63a439e6a49033</anchor>
      <arglist>(uint8_t ctx_nr, void *value)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>log_get_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gab10cc1265ebf8f51f9b65dc35c25b004</anchor>
      <arglist>(const struct log_context *ctx, uint8_t ctx_nr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_all_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga472e144e4786d4622383e8040ee44d91</anchor>
      <arglist>(struct log_target *target, int all)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>log_get_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4f0d97c8156921df3f2a8c063cd378e0</anchor>
      <arglist>(const struct log_target *target, int log_filter_index)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga189d79d3a2aa169880a0645980cd6508</anchor>
      <arglist>(struct log_target *target, int log_filter_index, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>log_get_filter_data</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9fe4e643b7ff7ad82616f1b89d20dd44</anchor>
      <arglist>(const struct log_target *target, int log_filter_index)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_set_filter_data</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga018b6fc50500ca6c014a8669973290a6</anchor>
      <arglist>(struct log_target *target, int log_filter_index, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_cache_enable</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae486c7d4d9df85a56c39c357d5941d6b</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_cache_update</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaccccc6015ad7dac48806a1911c7bfac6</anchor>
      <arglist>(int mapped_subsys, uint8_t enabled, uint8_t level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_use_color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga30d608c01397ebfdf5ea3751a2d77477</anchor>
      <arglist>(struct log_target *target, int use_color)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_extended_timestamp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaa7485ba761bb91b3b1551d0532c10255</anchor>
      <arglist>(struct log_target *target, int print_timestamp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_timestamp</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaee1b4940beeafc3be87dade21fca15cd</anchor>
      <arglist>(struct log_target *target, int print_timestamp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_tid</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga322b5ead8114170321047a0a6cf62bdb</anchor>
      <arglist>(struct log_target *target, int print_tid)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3ba3b5fcc019f7359704a7a6ee212ed</anchor>
      <arglist>(struct log_target *target, int print_filename)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename2</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga878f19493806866c6dbf2d7741aaa9e6</anchor>
      <arglist>(struct log_target *target, enum log_filename_type lft)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_filename_pos</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4f59f85a6eeef26a90e9909e0f45419e</anchor>
      <arglist>(struct log_target *target, enum log_filename_pos pos)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_category</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1f27605b22a68418f3b1304cb347b3dd</anchor>
      <arglist>(struct log_target *target, int print_category)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_category_hex</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga37155c559dfa73b1a2d83746116326fa</anchor>
      <arglist>(struct log_target *target, int print_category_hex)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_print_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga46786df78108657560700c8d99f9a542</anchor>
      <arglist>(struct log_target *target, int print_level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_log_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga608bb905a1d46b3f30c91ab2b5c791cb</anchor>
      <arglist>(struct log_target *target, int log_level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_parse_category_mask</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4cc6ca4580aff12753717030c1e0ef23</anchor>
      <arglist>(struct log_target *target, const char *_mask)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_category_name</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8114da96a88591aa817c38f98c119be1</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_parse_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3b291716f99d275bc17aaba56668fa54</anchor>
      <arglist>(const char *lvl)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_level_str</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga72d0cddff0823055cf7dbf195f96bba1</anchor>
      <arglist>(unsigned int lvl)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_parse_category</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacacb1583518cb0b46d50cf5e98200f54</anchor>
      <arglist>(const char *category)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_set_category_filter</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaac26114e404387c4ebcc5b3cee8bddba</anchor>
      <arglist>(struct log_target *target, int category, int enable, int level)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9f2aa41f93d7c8e659412640e9b03ea9</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_destroy</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga6bbfb2ce2a9ba3dea3b3c1204485b719</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_stderr</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga08b710a69267b50b7c26e2c7e87e5647</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_file</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1521542d251917511aec7ae3feac5b05</anchor>
      <arglist>(const char *fname)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_syslog</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaeee882e225104fac94d0b8daa048e303</anchor>
      <arglist>(const char *ident, int option, int facility)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_gsmtap</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga4efed74fd274a942527f6c311ff5d4e9</anchor>
      <arglist>(const char *host, uint16_t port, const char *ident, bool ofd_wq_mode, bool add_sink)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_systemd</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8ca192ef2740d2877292f2bec39a54cb</anchor>
      <arglist>(bool raw)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_emscripten</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabe28d07ee9c198435cef558e151af482</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_systemd_set_raw</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gafe72f96e070180cbbf2073a9806c9259</anchor>
      <arglist>(struct log_target *target, bool raw)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_reopen</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3147a2bfbed44aef8b0789ae0d3b8acd</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_switch_to_stream</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae324d978485dd51ac8f0a1057418a249</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_switch_to_wqueue</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga117469c362a121ecbdd997a1c0612c6c</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_get_nonblock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcb3a96a6a8ffd6e74faa0945e451149</anchor>
      <arglist>(const struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_target_file_set_nonblock</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga47da2593c68c4d97fe3d36f918189f92</anchor>
      <arglist>(struct log_target *target, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_targets_reopen</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3a0a25f7c25582eb297470a040bcaf0</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_add_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaef366d8dcc3243892af1a86825b332c4</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_del_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaef66f7f410135e85ab7d640969059e52</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_find</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacd942dd5269a031f3f94bfdb90b9dd22</anchor>
      <arglist>(enum log_target_type type, const char *fname)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_enable_multithread</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gacf9953bad5917dc2e72507fbf4308df6</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_tgt_mutex_lock_impl</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1f4bbcd8f332fd3c10618257fd381aae</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_tgt_mutex_unlock_impl</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga18a5be7b0f60ed441b102f3ae81204ee</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>osmo_static_assert</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gabbe638cbc231abd48396145cbd3b26aa</anchor>
      <arglist>(_LOG_CTX_COUNT&lt;=ARRAY_SIZE(((struct log_context *) NULL) -&gt;ctx), enum_logging_ctx_items_fit_in_struct_log_context)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>osmo_static_assert</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf1f7a734ffb9978da07d56af7d319760</anchor>
      <arglist>(_LOG_FLT_COUNT&lt;=ARRAY_SIZE(((struct log_target *) NULL) -&gt;filter_data), enum_logging_filters_fit_in_log_target_filter_data)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>osmo_static_assert</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaefa358df727fb5f7e49d69a6c4e88861</anchor>
      <arglist>(_LOG_FLT_COUNT&lt;=8 *sizeof(((struct log_target *) NULL) -&gt;filter_map), enum_logging_filters_fit_in_log_target_filter_map)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8244b3910e42eb24294f53d52ce5e48d</anchor>
      <arglist>(osmo_log_target_list)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>log_cache_update_all</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga3e9c5ea0653cc0df9d2d4ad1f1736a6e</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>log_cache_check</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga308e775a3d9188a9d9f8b814073c503f</anchor>
      <arglist>(int mapped_subsys, int level)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>assert_loginfo</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae3277bfadd5b4e5bc609d85a1c53b5e0</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>subsys_lib2index</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf15988bfcaa17f275256dc063a46c737</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga04683f168464a0f680e79baf747560b1</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>level_color</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac42c4f25e487c6ca8ff16d511312819b</anchor>
      <arglist>(int level)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>const_basename</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga1cf3db5ef2f4255d613011626cfc0770</anchor>
      <arglist>(const char *path)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_output_buf</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad0f490cca66aa8e7c414ece6a0dc6b5f</anchor>
      <arglist>(char *buf, int buf_len, struct log_target *target, unsigned int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>map_subsys</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga9f015671f0d19116a8240b28742a223e</anchor>
      <arglist>(int subsys)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>should_log_to_target</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga995623e2b3946ef56dd69487b0fda241</anchor>
      <arglist>(struct log_target *tar, int subsys, int level)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>EM_JS</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0ef44fff6c55a3ef49b8e4803442ca2f</anchor>
      <arglist>(void, on_log_wrapper,(const char *subsys, int level, const char *msg), { return on_log(subsys, level, msg);})</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_emscripten_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcaf3c351c24ada8e243e9943d9d9a1e</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_file_destroy</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae6561c1db02d391bc163096ed9e63444</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_file_output_stream</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac58b88e7430d4320daeb988f582a0492</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_file_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gae88920d8c69c10587f87a8890a7d50ea</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>_log_target_file_setup_talloc_pool</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga2f7a419025b55cefb2af2e83a93569a9</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_log_target_file_setup_iofd</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga50482bc004e2dbe089143d4c947a724a</anchor>
      <arglist>(struct log_target *target, int fd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_gsmtap_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadcb5d64707df94b5f4aa8671936a335e</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>logp2syslog_level</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga8e2436af7e6195055c738e37b1016bb9</anchor>
      <arglist>(unsigned int level)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_syslog_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga97b43f9b8359fe37e51e7876884c2d43</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_systemd_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga27ea724905c07af4eda1dac1ef43824a</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_systemd_raw_output</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga422e471f30e790e893b9b9ed4a281fff</anchor>
      <arglist>(struct log_target *target, int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="variable">
      <type>struct log_info *</type>
      <name>osmo_log_info</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga81945895aa832524afb8edaa9eb366d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_info *</type>
      <name>osmo_log_info</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga81945895aa832524afb8edaa9eb366d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct log_context</type>
      <name>log_context</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadec07e5cb20ac598d5b8dd1f70eefc30</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_log_ctx</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga637e5fb0ff764b323acb7caef1793dea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>__thread struct log_thread_state</type>
      <name>log_thread_state</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga0ab25e0670db8f46e3bc1e1a4f68bf8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static volatile uint8_t *</type>
      <name>log_level_lookup_cache</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga2df60cc520313b0109e5cf43cc0d1dc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static pthread_mutex_t</type>
      <name>osmo_log_tgt_mutex</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gadd5b9ce5d49453637546dbbfe13ed746</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static bool</type>
      <name>osmo_log_tgt_mutex_on</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf102d22306d0901165b93e74d5a489a5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>loglevel_strs</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gaf6826ad1edc63df058816b245f336872</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const struct log_info_cat</type>
      <name>internal_cat</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gac981d57bb4705996e634c7b1b3bd6a10</anchor>
      <arglist>[OSMO_NUM_DLIB]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static const struct value_string</type>
      <name>level_colors</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga7d0f79f30da8c4cdf389d1b50ec2f652</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_io_ops</type>
      <name>log_target_file_io_ops</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>gad0aa29bd27f5abfd48785af8de53fea5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread uint32_t</type>
      <name>logging_gsmtap_tid</name>
      <anchorfile>group__logging.html</anchorfile>
      <anchor>ga717d59129ea36f1cff741576ca246a46</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>logging_internal</name>
    <title>Osmocom logging internals</title>
    <filename>group__logging__internal.html</filename>
    <file>logging_internal.h</file>
    <class kind="struct">log_thread_state</class>
    <member kind="define">
      <type>#define</type>
      <name>MAX_LOG_SIZE</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gab6bc945ce840e4f0a16ec0fb12acc1a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOG_WQUEUE_LEN</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gaf04b3072636350a4b12b5e7ece065c72</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>assert_loginfo</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gae3277bfadd5b4e5bc609d85a1c53b5e0</anchor>
      <arglist>(const char *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>log_output_buf</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gad0f490cca66aa8e7c414ece6a0dc6b5f</anchor>
      <arglist>(char *buf, int buf_len, struct log_target *target, unsigned int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>log_target_file_destroy</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gae6561c1db02d391bc163096ed9e63444</anchor>
      <arglist>(struct log_target *target)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_log_ctx</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>ga637e5fb0ff764b323acb7caef1793dea</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct log_info *</type>
      <name>osmo_log_info</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>ga81945895aa832524afb8edaa9eb366d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>loglevel_strs</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gaf6826ad1edc63df058816b245f336872</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>osmo_log_target_list</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>gab166ed54cb9f811c3ca616533a964082</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>__thread struct log_thread_state</type>
      <name>log_thread_state</name>
      <anchorfile>group__logging__internal.html</anchorfile>
      <anchor>ga0ab25e0670db8f46e3bc1e1a4f68bf8a</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>loggingrb</name>
    <title>Osmocom ringbuffer-backed logging</title>
    <filename>group__loggingrb.html</filename>
    <file>loggingrb.h</file>
    <file>loggingrb.c</file>
    <member kind="function">
      <type>size_t</type>
      <name>log_target_rb_used_size</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gac9a845e64d56b9a0304adcdc20a8edad</anchor>
      <arglist>(struct log_target const *target)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>log_target_rb_avail_size</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>ga426cd3cb62e9f6c29ffa34624f131a7e</anchor>
      <arglist>(struct log_target const *target)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>log_target_rb_get</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gac5c43e52e67ec342d2a5542046219fc3</anchor>
      <arglist>(struct log_target const *target, size_t logindex)</arglist>
    </member>
    <member kind="function">
      <type>struct log_target *</type>
      <name>log_target_create_rb</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>gabb32bbd39408f38bb623c92485feecbd</anchor>
      <arglist>(size_t size)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_rb_output</name>
      <anchorfile>group__loggingrb.html</anchorfile>
      <anchor>ga5cdd3e33d00d006eb4595e35de7460e0</anchor>
      <arglist>(struct log_target *target, unsigned int level, const char *log)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>msgb</name>
    <title>Message buffers</title>
    <filename>group__msgb.html</filename>
    <file>msgb.h</file>
    <file>msgb.c</file>
    <class kind="struct">msgb</class>
    <member kind="define">
      <type>#define</type>
      <name>MSGB_DEBUG</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8cf2c52f02bf6e832d7880282a435a5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>MSGB_ABORT</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaf2a76423d5e8b648c05a7696f9cf6ed3</anchor>
      <arglist>(msg, fmt, args ...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l1</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5b0a3beb8ad95637539655d0bd2212e9</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaf159332606c2999a33ed73d9e874013c</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad9d9ef8e08a61b8d03226b1ba4a8fc99</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_l4</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga86664d6dc1e139cd649c0ab743336e93</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_sms</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1394ee8d1bda46a881b3acaada40784d</anchor>
      <arglist>(m)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gac9c7c6bee757b6fb1b37a7148c743a0b</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l1_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae4117d0a0ab548f99f2e2e63117df032</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l2_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gac7c94c9cc0fabd46f4671aa629b0f714</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l3_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga48b26c6bdc8a8eba642efd7f1e0f5d4f</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l4_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga7cb914404304649bde1aa9cae7c3b494</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaaca88445376e3090c2e3762dc73ee458</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l1_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga386e61c1f2fbe123f1c52a94ec091e34</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l2_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae68671853cb54b9d698fb7d6d7f035e9</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l3_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga07dea4ee86de1f755a24f097f67eb1b2</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l4_data_print</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacdbe0cdde2775b1ea052f5bee44115f3</anchor>
      <arglist>(msg, data, len)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae9b5b86e28d3e7ec69b5bb80ad8be0e2</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l1</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga55a2663d7da4d25b3939cf62798ff5b3</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga4f5b7ecc9c2d0d12ff2c72f8c172b44c</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1819185b9dd9a08c09508b31fd6cab35</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>msgb_eq_l4</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9de9fea11a097497aa33a401423a0cdf</anchor>
      <arglist>(msg1, msg2)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_alloc_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gabfa7361c6d26ec2726525828813b8081</anchor>
      <arglist>(const void *ctx, uint16_t size, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_alloc</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga25906d049cbad1bf2d5a785319268ea8</anchor>
      <arglist>(uint16_t size, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_free</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae48b55f6f4529aafb069eaa3fa1998f0</anchor>
      <arglist>(struct msgb *m)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_enqueue</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacb8dd9493eb7fc266ce159e3325c6504</anchor>
      <arglist>(struct llist_head *queue, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_dequeue</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gadf56eab1dbbb193b132c3dc6ba4222bc</anchor>
      <arglist>(struct llist_head *queue)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_reset</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5676421c50ed5d0049b53605fc5397ce</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>msgb_length</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga036077cd924b90a798cb3b6c5541a492</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>msgb_hexdump</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9a703fb35c8eafd88c6d0d20aef465ac</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>msgb_hexdump_buf</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8f7a6483386bf042668201f9e18b5a05</anchor>
      <arglist>(char *buf, size_t buf_len, const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>msgb_hexdump_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga529723f7c2ae10e4ebcf05f2890e2999</anchor>
      <arglist>(const void *ctx, const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>msgb_resize_area</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gab1ffdec5c9aa14709b9b10b0c3ad3612</anchor>
      <arglist>(struct msgb *msg, uint8_t *area, int old_size, int new_size)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5f79dffec24b16b92bcdb4cd19a8ee90</anchor>
      <arglist>(const struct msgb *msg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga3ff33cbd8eccd14d4c7766b8a2afeb51</anchor>
      <arglist>(const void *ctx, const struct msgb *msg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_resize</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae522e97ead0bf5a6331399a4ec91d58b</anchor>
      <arglist>(const struct msgb *msg, uint16_t new_len, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>msgb_copy_resize_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gab30cebe53b874324e73e3cb56aaba015</anchor>
      <arglist>(const void *ctx, const struct msgb *msg, uint16_t new_len, const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_test_invariant</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga4b2dd2f9f18244da4014d89693e39927</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_queue_free</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9c04c785fc2ff39b85a47e915a39eab7</anchor>
      <arglist>(struct llist_head *queue)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_enqueue_count</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad1a243fb0f975bd5bc5942499f6fbb41</anchor>
      <arglist>(struct llist_head *queue, struct msgb *msg, unsigned int *count)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>msgb_dequeue_count</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8de928af0e7f70b214e7dff128fc23fe</anchor>
      <arglist>(struct llist_head *queue, unsigned int *count)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l1len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga6c906f4c3afd52d2813a9c9a50acdf48</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l2len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga62f1183fcbb03ae09b922a79b95528ab</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l3len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga519e9198fe06b0ea67ada65e77c5d7b2</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_l4len</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga23865301157c48a99407f62b3e178d06</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>msgb_headlen</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae54ddbf27117a4cb1b750c6b113a0d0c</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_tailroom</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga14ba72cbede82dddeece5838969d064c</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_headroom</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaff7eae95ec007dd419dc60c03c3db5bd</anchor>
      <arglist>(const struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_put</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga776bdfbc2cc1de3e2005f8d765739852</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_put_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gabf3d11e3739218fe013956285819f772</anchor>
      <arglist>(struct msgb *msgb, uint8_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_put_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8c951f453a3d6dd6c800fc5d7480534c</anchor>
      <arglist>(struct msgb *msgb, uint16_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_put_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga2650307d02f185d8f6ac11b8de7738c6</anchor>
      <arglist>(struct msgb *msgb, uint32_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_get</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gacbaa44ea8bece53cee7b4c6588c52fe8</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint8_t</type>
      <name>msgb_get_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaa5b5674fbbe7b7206565f79dba2ca28f</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>msgb_get_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad07b39cd3d4d0865b4139582eb458e00</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>msgb_get_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga3a53a5bb768bc46ad048794d0bd8e061</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_push</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gafe7118b63e3c23e5dd4f3a5bf8ce18ff</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_push_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga57b61b3a680a9b208f6e032421172d26</anchor>
      <arglist>(struct msgb *msg, uint8_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_push_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga6884d6ab602f8d89256e67f4b6134671</anchor>
      <arglist>(struct msgb *msg, uint16_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_push_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaae975f6c2478a9a588e4826207a45657</anchor>
      <arglist>(struct msgb *msg, uint32_t word)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_push_tl</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga605f6a4d945369e1ccb38f168a8dc2c7</anchor>
      <arglist>(struct msgb *msgb, uint8_t tag)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_pull</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga031d4336b3ebd3a910f4fa178aa17b03</anchor>
      <arglist>(struct msgb *msgb, unsigned int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_pull_to_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gaaa6018286eef90118f6f44e531302028</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned char *</type>
      <name>msgb_pull_to_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga390bcb56ea0623b22c40f81d288812f0</anchor>
      <arglist>(struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint8_t</type>
      <name>msgb_pull_u8</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga0d66ac4622d966dfd30ce3ced46f7bff</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>msgb_pull_u16</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga2e2c2eb7ddf48d24cd78f95151537a73</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint32_t</type>
      <name>msgb_pull_u32</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga68f43d95ab0571e207ccc679c426bbbe</anchor>
      <arglist>(struct msgb *msgb)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>msgb_reserve</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gad73da5b3dce61877ad745d5e25ea44d5</anchor>
      <arglist>(struct msgb *msg, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_trim</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9c64d044b82dc23de865fadc8533249e</anchor>
      <arglist>(struct msgb *msg, int len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>msgb_l3trim</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gadcf2bccabb0370141eebdc32aca77d30</anchor>
      <arglist>(struct msgb *msg, int l3len)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>msgb_alloc_headroom_c</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9afe78b15621cf6ba80ff28ea02ad55a</anchor>
      <arglist>(const void *ctx, uint16_t size, uint16_t headroom, const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>msgb_alloc_headroom</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga456177a38643fcea2cdc2801fb7c7cb6</anchor>
      <arglist>(uint16_t size, uint16_t headroom, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_msgb_eq</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga7c21cb1a25cffb5ad4f0e64af45db040</anchor>
      <arglist>(const char *file, size_t line, const char *func, uint8_t level, const struct msgb *msg, const uint8_t *data, size_t len, bool print)</arglist>
    </member>
    <member kind="function">
      <type>uint8_t *</type>
      <name>msgb_data</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga9bed2fe8aedfa7619eda155a4afbaf9a</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>msgb_talloc_ctx_init</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga66fd1ee6b6667bf707fcef99ee2fb7db</anchor>
      <arglist>(void *root_ctx, unsigned int pool_size)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>msgb_set_talloc_ctx</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga1d57bb92a849857deb6871446d3230da</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>msgb_printf</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga8b7ed585b26c2239b7f7e702a3daf29f</anchor>
      <arglist>(struct msgb *msgb, const char *format,...)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l1</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga721d5c287e8eb56eebb95c438939b81d</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l2</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>gae8022d59918936103cdd9521a0d054c8</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l3</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga4d8dfb6c63812f92502e902a93ab32b1</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>msgb_hexdump_l4</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga5965412cbc6326a2d77ba1d68d756b79</anchor>
      <arglist>(const struct msgb *msg)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_msgb_ctx</name>
      <anchorfile>group__msgb.html</anchorfile>
      <anchor>ga72b7917a2ec7fb2120f31cab8d749218</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>osmo_io</name>
    <title>Osmocom I/O interface</title>
    <filename>group__osmo__io.html</filename>
    <file>osmo_io.h</file>
    <file>osmo_io.c</file>
    <class kind="struct">osmo_io_ops</class>
    <member kind="define">
      <type>#define</type>
      <name>LOGPIO</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gad79a233373abd11aa1e78ba00a03fba4</anchor>
      <arglist>(iofd, level, fmt, args...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_IO_BACKEND_ENV</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga39780b6efe5513635fe389b5a1e15851</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_io_fd_mode</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga196eee1d3f903df0c1bf84fb7c3179a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_FD_MODE_READ_WRITE</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga196eee1d3f903df0c1bf84fb7c3179a4af6e3729d49ac9f56c26a8af14172fc14</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_FD_MODE_RECVFROM_SENDTO</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga196eee1d3f903df0c1bf84fb7c3179a4a13ea1b4f62c4f0d1aa4c31be31dd26d5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_FD_MODE_RECVMSG_SENDMSG</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga196eee1d3f903df0c1bf84fb7c3179a4aaec6a07945b508eb06fa7b53e4fba4b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_io_op</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaf24a0d74fe0528130dd79e91e8b47217</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_OP_READ</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ggaf24a0d74fe0528130dd79e91e8b47217aa3b4583e49116c2a5edcaadc3015dcdc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_OP_WRITE</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ggaf24a0d74fe0528130dd79e91e8b47217ac3f2db3a8b7590008f949c88f0d4515f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_io_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga5cd6c55e1c52afb526fe99154a8c1037</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_BACKEND_POLL</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga5cd6c55e1c52afb526fe99154a8c1037ae373cd88f847a3dca2f27161c18a3854</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_IO_BACKEND_IO_URING</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gga5cd6c55e1c52afb526fe99154a8c1037af670c1a37d43d6a4c954371727a1ec30</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>enum osmo_io_backend</type>
      <name>osmo_io_get_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga9a5ee69f272cd017639951f2ed9dd350</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_io_backend_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga48f0337026e1c0df61db86255a1268a1</anchor>
      <arglist>(enum osmo_io_backend val)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_iofd_mode_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga3d1d70e2518dce3fcb19ceadac1a6072</anchor>
      <arglist>(enum osmo_io_fd_mode val)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_init</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac2aa95b43d279379692c700a982c1b36</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_io_fd *</type>
      <name>osmo_iofd_setup</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa51acb50932f9ca44bfe0fe8a7005c93</anchor>
      <arglist>(const void *ctx, int fd, const char *name, enum osmo_io_fd_mode mode, const struct osmo_io_ops *ioops, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_cmsg_size</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaf275c59b5ddcb21ae83652ecb5756f31</anchor>
      <arglist>(struct osmo_io_fd *iofd, size_t cmsg_size)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_io_buffers</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga28891e57c72de4603b6460d0c84b5978</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum osmo_io_op op, uint8_t buffers)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_sqes</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga14a5a4c9dd90939a2beab07a843a630f</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum osmo_io_op op, uint8_t sqes)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_register</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa53e1057f56ac19ab23f35eecf4ed95a</anchor>
      <arglist>(struct osmo_io_fd *iofd, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_unregister</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga3ea9d5e4466d3cf56d922e25106fe8ff</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_txqueue_len</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac2a28e90c8d6d9ed17a6a69593443eb5</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_txqueue_clear</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga71bccce92a62bd5e5e50b840a0596890</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_close</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gae87caba238946a9c9b29f248bb588f9a</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_free</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8a10e120fd35fcf7f0fd8b43f5b8d5aa</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_notify_connected</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga51608c4401dcbc99a7ad91a2746f8e90</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_write_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0c3ca8f15e1c3382902c226e001e98ad</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_sendto_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaefb2721bf4d1f6fb443214d989a90e8c</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int sendto_flags, const struct osmo_sockaddr *dest)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_sendmsg_msgb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gabab40e7a5478bf4195dd8b79752bc1b2</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int sendmsg_flags, const struct msghdr *msgh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_alloc_info</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gadc4115972306e4f5614432119fefc386</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int size, unsigned int headroom)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_txqueue_max_length</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga62d298658dac2770d55e766fbcfc4fcb</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int max_length)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_get_txqueue_max_length</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga930572437897f5a8b1beaa3e9fa9af8d</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_iofd_get_data</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaddf0cc4e28ce123e52d0b62cc947d7ac</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_data</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga090693c9f45a01e5c39b7c4fbebb9079</anchor>
      <arglist>(struct osmo_io_fd *iofd, void *data)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_iofd_get_priv_nr</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gade3d061edf87b81213cbaf62eaa9da2e</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_priv_nr</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga52cab17b19fa5dd62f80b6a3bd020d7b</anchor>
      <arglist>(struct osmo_io_fd *iofd, unsigned int priv_nr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_get_fd</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8747c5e4274bd97c7faf968a5a6b1fd1</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_iofd_get_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gacaf7cf012bdf07bc8325deb929485a9d</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_name</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga7f7bbf44f3a5308f510ccaab21b89cfe</anchor>
      <arglist>(struct osmo_io_fd *iofd, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_set_name_f</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gadd605353d540e3107aa9075cdc24c23f</anchor>
      <arglist>(struct osmo_io_fd *iofd, const char *fmt,...)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_iofd_set_ioops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga365266d41cdc7dc76fd0073c77084580</anchor>
      <arglist>(struct osmo_io_fd *iofd, const struct osmo_io_ops *ioops)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_iofd_get_ioops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga2acd36a67ea289bc3b043d9125c6e2c4</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct osmo_io_ops *ioops)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>__attribute__</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa811d40f7e27f5bf851308f829f85506</anchor>
      <arglist>((constructor(103)))</arglist>
    </member>
    <member kind="function">
      <type>struct iofd_msghdr *</type>
      <name>iofd_msghdr_alloc</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga85597f790f142e4d7d49ca104a771d52</anchor>
      <arglist>(struct osmo_io_fd *iofd, enum iofd_msg_action action, struct msgb *msg, size_t cmsg_size)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_msghdr_free</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga25fcd917fe6e149b762c689c4c6648d4</anchor>
      <arglist>(struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>iofd_msgb_alloc2</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga9040b62bfc7b213a941e92bda5000eec</anchor>
      <arglist>(struct osmo_io_fd *iofd, size_t size)</arglist>
    </member>
    <member kind="function">
      <type>struct msgb *</type>
      <name>iofd_msgb_alloc</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaa76da55f64623829b922e3320d3a35a1</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>iofd_txqueue_enqueue</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac93ff2c863e5b878ae7b35bb059454ab</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_txqueue_enqueue_front</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0a3e46bdd7713605f681e993b2d3f84f</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function">
      <type>struct iofd_msghdr *</type>
      <name>iofd_txqueue_dequeue</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gacba5cc1993b3e9512a1a9ef53f5f0539</anchor>
      <arglist>(struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static enum iofd_seg_act</type>
      <name>iofd_handle_segmentation</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga6f1e706e4d7ad59bfd240c9567002713</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, struct msgb **pending_out)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>_call_read_cb</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga0941375a74d6713f536cff8c48e3364b</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static uint16_t</type>
      <name>iofd_msgb_length_max</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga170eaa88a44190ad3e73795bf4567451</anchor>
      <arglist>(const struct osmo_io_fd *iofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>iofd_prepare_handle_segmentation</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga41c2117b9e58768fbbdf26490ea3ed6a</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *in_msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>iofd_handle_segmented_read</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga91d182e9430d8fbe2a4bca5fa7cf4fa6</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_handle_recv</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gad7e46038ace42362fd2ad67d20260da9</anchor>
      <arglist>(struct osmo_io_fd *iofd, struct msgb *msg, int rc, struct iofd_msghdr *hdr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>iofd_handle_send_completion</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga58b7e5d35ed02d28dab9b31004087a3d</anchor>
      <arglist>(struct osmo_io_fd *iofd, int rc, struct iofd_msghdr *msghdr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>check_mode_callback_compat</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gaca9d1219150743bf70dc3eee15466efe</anchor>
      <arglist>(enum osmo_io_fd_mode mode, const struct osmo_io_ops *ops)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_io_backend_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8f5cb2143224530f5cf0c0e84e4ade1b</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_iofd_mode_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac9c7fc1e9c6e8219afd43e9e19a96b61</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_io_backend_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga8f5cb2143224530f5cf0c0e84e4ade1b</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_iofd_mode_names</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gac9c7fc1e9c6e8219afd43e9e19a96b61</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static enum osmo_io_backend</type>
      <name>g_io_backend</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>gae8d889e5c9ea71b5099d26954f1f5914</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct iofd_backend_ops</type>
      <name>osmo_iofd_ops</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga93e9f1ee0b388b44d1d4cca2461f29fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread bool</type>
      <name>g_thread_initialized</name>
      <anchorfile>group__osmo__io.html</anchorfile>
      <anchor>ga6085c489092d3fb995087e67bee1eb3b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>prim</name>
    <title>Osmocom primitives</title>
    <filename>group__prim.html</filename>
    <file>prim.h</file>
    <file>prim.c</file>
    <class kind="struct">osmo_prim_hdr</class>
    <class kind="struct">osmo_prim_event_map</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_PRIM</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga173c203440160e63e5c588870638607a</anchor>
      <arglist>(prim, op)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_PRIM_HDR</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga43873bb5609b3d8c72a740c095264b3b</anchor>
      <arglist>(oph)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_GSM_SHIFT</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gaa9cc671e11971c5cbd2e8fbe9c5de332</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_GSM_BASE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gafede4906436eeaac53464216f112a2d9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_TETRA_BASE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga66ac978ed015c4111d846c5e1dee1449</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>_SAP_SS7_BASE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga7f7c1f3030da0d2aa57f4c69a99d06e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_NO_EVENT</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gaada260e79492bf89c208db9184174459</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_prim_cb</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gab56d32c84797be881ccafdebe4b78b2a</anchor>
      <arglist>)(struct osmo_prim_hdr *oph, void *ctx)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_prim_operation</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga5bd3196233677c8e9ab66b6fb97060d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_REQUEST</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3aef3a9ebe139f54ca2c1dae8b65c6880e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_RESPONSE</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3af62503bb7df5fde38f9359b591028dc1</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_INDICATION</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3a6987bf8560df352ada9979b4457f9f0d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>PRIM_OP_CONFIRM</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gga5bd3196233677c8e9ab66b6fb97060d3aee86a39134232ad0417a13ef1f8e53bf</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_prim_operation_name</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga771deac5835b0ce81dc8d7390f8e00f2</anchor>
      <arglist>(enum osmo_prim_operation val)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_prim_init</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gaf826713c118d129aff1a700a742552c4</anchor>
      <arglist>(struct osmo_prim_hdr *oph, unsigned int sap, unsigned int primitive, enum osmo_prim_operation operation, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>uint32_t</type>
      <name>osmo_event_for_prim</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga65cffc8b84a2c3d2f200560096810695</anchor>
      <arglist>(const struct osmo_prim_hdr *oph, const struct osmo_prim_event_map *maps)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_prim_op_names</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>gae79f3e17450603fb5f3c5444fb845f0d</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_prim_op_names</name>
      <anchorfile>group__prim.html</anchorfile>
      <anchor>ga886b7582fd2947d0582cd8c9acd30cc9</anchor>
      <arglist>[5]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>rate_ctr</name>
    <title>Rate counters</title>
    <filename>group__rate__ctr.html</filename>
    <file>rate_ctr.h</file>
    <file>rate_ctr.c</file>
    <class kind="struct">rate_ctr_per_intv</class>
    <class kind="struct">rate_ctr</class>
    <class kind="struct">rate_ctr_desc</class>
    <class kind="struct">rate_ctr_group_desc</class>
    <class kind="struct">rate_ctr_group</class>
    <member kind="define">
      <type>#define</type>
      <name>RATE_CTR_INTV_NUM</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga85def00abef0c8c8bbdf23d735b6cee5</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>rate_ctr_handler_t</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8e56c2c4dfd115cc0dce5ece64358134</anchor>
      <arglist>)(struct rate_ctr_group *, struct rate_ctr *, const struct rate_ctr_desc *, void *)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>rate_ctr_group_handler_t</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga6866d0e48674968700a4e0b180d920ec</anchor>
      <arglist>)(struct rate_ctr_group *, void *)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>rate_ctr_intv</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga206bdcbeb51642012c2e45d8f058a9f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_SEC</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0a6b6b79abab6c1a040df680ab5449f9df</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_MIN</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0aad41f28c9d50eb22834cf166befb415c</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_HOUR</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0ad4ea3a8a9bc17930d092e508cb72cdf2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RATE_CTR_INTV_DAY</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gga206bdcbeb51642012c2e45d8f058a9f0a1afdc7f2127e33125916f7de9c9eae32</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr_group *</type>
      <name>rate_ctr_group_alloc</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga108907e64481db1455cb1fca5374b659</anchor>
      <arglist>(void *ctx, const struct rate_ctr_group_desc *desc, unsigned int idx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_group_upd_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga753c11230f62e060d7858817f7b002e0</anchor>
      <arglist>(struct rate_ctr_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_set_name</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga5d551206dbf14b5dd7c465e3d6e6ee8d</anchor>
      <arglist>(struct rate_ctr_group *grp, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr *</type>
      <name>rate_ctr_group_get_ctr</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga317acaee831407fbff64233258a48734</anchor>
      <arglist>(struct rate_ctr_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_free</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga2b28875fc006413054b17cb80e540edd</anchor>
      <arglist>(struct rate_ctr_group *grp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_add</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gada3668404ea1bd57e2aaab8287bc16b6</anchor>
      <arglist>(struct rate_ctr *ctr, int inc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_add2</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga053d7640f3b442c96e493c113190629b</anchor>
      <arglist>(struct rate_ctr_group *ctrg, unsigned int idx, int inc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_inc</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8f2e881dafe07d4fbdec1027394991eb</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_inc2</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga1bf97abfab860f29e4b0019c3f5dfddb</anchor>
      <arglist>(struct rate_ctr_group *ctrg, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>int64_t</type>
      <name>rate_ctr_difference</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gaabc955b67c53b2d239bd6d6193cbf6c8</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_init</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga9bfe8ec87ccaabd9f1fdddef5f36cbfa</anchor>
      <arglist>(void *tall_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct rate_ctr_group *</type>
      <name>rate_ctr_get_group_by_name_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga8ec85b6a07ce4c18fd9b8b548a4badfe</anchor>
      <arglist>(const char *name, const unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>const struct rate_ctr *</type>
      <name>rate_ctr_get_by_name</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga13a0c06042c667f41dc56ee02325c077</anchor>
      <arglist>(const struct rate_ctr_group *ctrg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_for_each_counter</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gacded8db7ae1f6b7bd5b837680df23df7</anchor>
      <arglist>(struct rate_ctr_group *ctrg, rate_ctr_handler_t handle_counter, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>rate_ctr_for_each_group</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga7481b6560512295ed28806e2fe916c09</anchor>
      <arglist>(rate_ctr_group_handler_t handle_group, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_reset</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga099666d2e04df4d35c73b373b4a3cb5f</anchor>
      <arglist>(struct rate_ctr *ctr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>rate_ctr_group_reset</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga55836246eef523c255256cb530a99d64</anchor>
      <arglist>(struct rate_ctr_group *ctrg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gac8fcdb2fb5acb5fa9b4144f7858a6f7b</anchor>
      <arglist>(rate_ctr_groups)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>rate_ctrl_group_desc_validate</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gaa4194e021daec715f7d17ca92dea258b</anchor>
      <arglist>(const struct rate_ctr_group_desc *desc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static char *</type>
      <name>mangle_identifier_ifneeded</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gac3403aeac127acce2366d638809a5d61</anchor>
      <arglist>(const void *ctx, const char *in)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct rate_ctr_group_desc *</type>
      <name>rate_ctr_group_desc_mangle</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga901d8e3b5d32175c2c23e217b0561420</anchor>
      <arglist>(void *ctx, const struct rate_ctr_group_desc *desc)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned int</type>
      <name>rate_ctr_get_unused_name_idx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga2995d63535f2a8774fb553b9fef7c060</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>interval_expired</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga079b465bb26f59e060c8108b81284034</anchor>
      <arglist>(struct rate_ctr *ctr, enum rate_ctr_intv intv)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>rate_ctr_group_intv</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga7f2e58d3d3a1349845924f05489326df</anchor>
      <arglist>(struct rate_ctr_group *grp)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>rate_ctr_timer_cb</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga42e417495cd1b2bf5bd409af1ca429f9</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static void *</type>
      <name>tall_rate_ctr_ctx</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga3b69e9b208cadac269976b2c025c06b4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_fd</type>
      <name>rate_ctr_timer</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>ga323b22b7fea6ff550272c9fa065638b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static uint64_t</type>
      <name>timer_ticks</name>
      <anchorfile>group__rate__ctr.html</anchorfile>
      <anchor>gabdf5657b1022ebe1848ae003a19ae943</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>select</name>
    <title>Select loop abstraction</title>
    <filename>group__select.html</filename>
    <file>select.h</file>
    <class kind="struct">osmo_fd</class>
    <class kind="struct">osmo_signalfd</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_READ</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga0b213d11f729967d08a03f84a29e27b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_WRITE</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga35f0e6aebab8ac046ab1f6d40a75e9f1</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_EXCEPT</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga2f7bdc2b5dc69c376d44170645a69f0a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_FD_MASK</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gae2f6852f715acabaff698001e7ca9025</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>BSC_FD_READ</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga984f70f9eecce28d279db885321c1fde</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>BSC_FD_WRITE</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga9465a2b57e47f183b317a38e85db7370</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>BSC_FD_EXCEPT</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga3b3006cd41b97228177c2ebaed68ab1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>void</type>
      <name>osmo_signalfd_cb</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga03d8416886989017d0ea36ba893f5aeb</anchor>
      <arglist>(struct osmo_signalfd *osfd, const struct signalfd_siginfo *fdsi)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_setup</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga2f14f77e5e71c5bd3461d5936f8c8725</anchor>
      <arglist>(struct osmo_fd *ofd, int fd, unsigned int when, int(*cb)(struct osmo_fd *fd, unsigned int what), void *data, unsigned int priv_nr)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_update_when</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga7334ab2c60124d85137cfd3e34fd6214</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int when_mask, unsigned int when)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_read_enable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gaa292f19cc2852a2e6245f20fba5efc44</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_read_disable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gad480c371be33f8eb8945b5da28fc3de2</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_write_enable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gac60e507582c46d44889e099f218433ee</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_fd_write_disable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gada41360239bba1171cd41eb10a451a9e</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_fd_is_registered</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga7fff224f686a25799a00a3bb94d5b5f5</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fd_register</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gac32214612d27208dad91c7ed9ea56314</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_unregister</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gaf96b5808375c57fa2065177dcb8ace30</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_fd_close</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga61c647f34ed36905c87803a337fa2dfd</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_select_main</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gabc1e2b227ca4c88df091ad2ba22c4231</anchor>
      <arglist>(int polling)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_select_main_ctx</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga5a4cd886cd6be70c0a85ed9114ba6d5b</anchor>
      <arglist>(int polling)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_select_init</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga267a7be1b116a008587c13a522b060a4</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_fd *</type>
      <name>osmo_fd_get_by_fd</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gac3d9884ffdcc49590ff9dc09b29a1052</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fd_fill_fds</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga4bfe6aaedd6b3eedbe1a5910d21f14ea</anchor>
      <arglist>(void *readset, void *writeset, void *exceptset)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_fd_disp_fds</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga3a26f48c28fd1173a7362f805ec9729a</anchor>
      <arglist>(void *readset, void *writeset, void *exceptset)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timerfd_disable</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gafb018e4ae4f7a11a99f167c6c400bf3a</anchor>
      <arglist>(struct osmo_fd *ofd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timerfd_schedule</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gaae36f523e511d19574907b418f3d8e4f</anchor>
      <arglist>(struct osmo_fd *ofd, const struct timespec *first, const struct timespec *interval)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timerfd_setup</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga4f0c2df649f7e05b14a920ed36316cd8</anchor>
      <arglist>(struct osmo_fd *ofd, int(*cb)(struct osmo_fd *, unsigned int), void *data)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_signalfd *</type>
      <name>osmo_signalfd_setup</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga64bd5cc5507e872a3a7959bf5a05c190</anchor>
      <arglist>(void *ctx, sigset_t set, osmo_signalfd_cb *cb, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_select_shutdown_request</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga29999031d0d7eb5bb56e3b5a002cab82</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_select_shutdown_requested</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>ga60c59a1a2e1269be4811e34d026ccd31</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_select_shutdown_done</name>
      <anchorfile>group__select.html</anchorfile>
      <anchor>gae7a26a2e65f34eaad166ea74d34e005d</anchor>
      <arglist>(void)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>sercomm</name>
    <title>Seriall Communications (HDLC)</title>
    <filename>group__sercomm.html</filename>
    <file>sercomm.h</file>
    <file>sercomm.c</file>
    <class kind="struct">osmo_sercomm_inst</class>
    <member kind="define">
      <type>#define</type>
      <name>DEFAULT_RX_MSG_SIZE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gae5506ebbc189cc252a48c4a119af43f0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_FLAG</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga7dfaac00ac4dc67fd47f2cbdf51d5c72</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_ESCAPE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga8a4ca60e37719a6f32b08305b1fd8db0</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_C_UI</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga036f010e0e55c0523d70f3b5a8493a36</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_C_P_BIT</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga150cf3cff25fd010a65a9da00d957654</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>HDLC_C_F_BIT</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gad61ef90767cc6621972c406c94c69a39</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>void(*</type>
      <name>dlci_cb_t</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga81cd2fc05eee74b91a246d2a0628c224</anchor>
      <arglist>)(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>sercomm_dlci</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga62ff1a9e948ed30514cebd9efccab0e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_HIGHEST</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6a68f6d4acc5da7baa67418fdbc089ff74</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_DEBUG</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6ae0c072c1915aee9c412de3ddf665389a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_L1A_L23</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6a8bc355b526b80f8cd2f9df8f63ccb3e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_LOADER</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6afdf26330965d85d5ded38e30f58e2342</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_CONSOLE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6ad8a377d4e7af4bb5362aae85192e9082</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SC_DLCI_ECHO</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6abd4f3db5ac3962150791d6b26681d758</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>_SC_DLCI_MAX</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga62ff1a9e948ed30514cebd9efccab0e6afd8db6ec8c0af822dd9758f317827ad5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>rx_state</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga20874253e23bc4c1d20f69479175ce6f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_WAIT_START</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fa5df225b93defbcb282b88f4769bda5d2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_ADDR</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fa8b7b4b41ae65d9aa7f086293ef9fbd65</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_CTRL</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fad423f5424c105e9c6e76cbe87bd4584f</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_DATA</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fa9219e818fd4bf7c793a0d80c2c373aa8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>RX_ST_ESCAPE</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gga20874253e23bc4c1d20f69479175ce6fad67efb3066cd5c633885ab0f4d9fbe16</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sercomm_init</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gab2d8eec4732f508236647b94a525f93b</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_initialized</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga5ef6c458cc669168c62cd82a277f3dd6</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sercomm_sendmsg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gaa5c1979d9a54e7be35d58f5c696a6900</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_sercomm_tx_queue_depth</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga17b7f2be907d071088e806b513c67aa2</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_register_rx_cb</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga08ec337e1f51fafb07d18d7b6c717a78</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, dlci_cb_t cb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_change_speed</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga8f6f058187c96d9fded862e2f6d8841e</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint32_t bdrt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_drv_pull</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga0b371b3a27149b137f7589b194ee26c6</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t *ch)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sercomm_drv_rx_char</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga10cbc58f23aafa1381074457c70c2b34</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t ch)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_lock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gab9383d9e35e3255b4066b9f5ee4cbefd</anchor>
      <arglist>(unsigned long *flags)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_unlock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga614e4d8b5c68c96a87424ceccf7973cc</anchor>
      <arglist>(unsigned long *flags)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_start_tx</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga3d78d1d6fb0f92c23d93555085ab1353</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>sercomm_drv_baudrate_chg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gabb67e6d20a7b7002ce8093cc6ab99102</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint32_t bdrt)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct msgb *</type>
      <name>osmo_sercomm_alloc_msgb</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga4350807326534376d38dec25e9551ccb</anchor>
      <arglist>(unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_lock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga5b19bd280856d611048f7bc3c20c740d</anchor>
      <arglist>(unsigned long __attribute__((unused)) *flags)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>sercomm_drv_unlock</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga6e6ee76e77fe4c2151ba2ded4b845c16</anchor>
      <arglist>(unsigned long __attribute__((unused)) *flags)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>__attribute__</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>gaf9aace1b44b73111e15aa39f06f43456</anchor>
      <arglist>((weak))</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>dispatch_rx_msg</name>
      <anchorfile>group__sercomm.html</anchorfile>
      <anchor>ga2fdb62de1860c2806279ce9d60403956</anchor>
      <arglist>(struct osmo_sercomm_inst *sercomm, uint8_t dlci, struct msgb *msg)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>serial</name>
    <title>Utility functions to deal with serial ports</title>
    <filename>group__serial.html</filename>
    <file>serial.h</file>
    <file>serial.c</file>
    <member kind="define">
      <type>#define</type>
      <name>dbg_perror</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga7c79736a4054bb325bc9228b286401f7</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_init</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga1f1af4f9541cea98915c807938d576af</anchor>
      <arglist>(const char *dev, speed_t baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_set_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gac12e9df0274d063a3a188f16c9f86378</anchor>
      <arglist>(int fd, speed_t baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_set_custom_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga53bf675db7d6c886d683bcfa3621193c</anchor>
      <arglist>(int fd, int baudrate)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_clear_custom_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gaf674bb14346e7bbd6f0555464fb66a53</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_serial_speed_t</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>ga79c9ea27d7852c2652122e5bbdb47511</anchor>
      <arglist>(unsigned int baudrate, speed_t *speed)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>_osmo_serial_set_baudrate</name>
      <anchorfile>group__serial.html</anchorfile>
      <anchor>gad354988168b080f5a2a8f6b0e3aa4c2e</anchor>
      <arglist>(int fd, speed_t baudrate)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>signal</name>
    <title>Intra-application signals</title>
    <filename>group__signal.html</filename>
    <file>signal.h</file>
    <file>signal.c</file>
    <class kind="struct">signal_handler</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_SS_APPS</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gabf1fd02256768cfed6356d8434e3163a</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_SS_RESERVED</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gaea2126eb1859066374a148c5929fc901</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_T_APPS</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga24a50e4e7f446e4b595ce13b66418eeb</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SIGNAL_T_RESERVED</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga2e48d094a85446edcb2a9a8b2d7adb34</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int</type>
      <name>osmo_signal_cbfn</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gae1e33b4b31b9aa6d224de68053dcb1ce</anchor>
      <arglist>(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data)</arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_GLOBAL</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167ba1c16e247915ba903f0b15dd21f33f924</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_INPUT</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167ba0f74e71436faadd50e466563f7f5fabd</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_NS</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167baea1b3aaafcf5689c71b9db0e2db8ab7d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>SS_L_VTY</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gga7ff5f2dff38e7639981794c43dc9167ba3b46c605181dbc6523c86e9e66b76004</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>S_L_GLOBAL_SHUTDOWN</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ggaabfcbcb5ac86a1edac4035264bc7d2b8a4332cdc80e697a91f1f95b89b59216be</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_signal_talloc_ctx_init</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gacbbc59427aa2fd838becc61d3443ca44</anchor>
      <arglist>(void *root_ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_signal_register_handler</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga34e5e27e85ffdaa63744cf9e97468807</anchor>
      <arglist>(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_signal_unregister_handler</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga62da9d737e40883ac0d15b7b3bc049fb</anchor>
      <arglist>(unsigned int subsys, osmo_signal_cbfn *cbfn, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_signal_dispatch</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga8eb0fdf74d9ae54383b10cb88792a008</anchor>
      <arglist>(unsigned int subsys, unsigned int signal, void *signal_data)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>gaa46f0e38b6dcdd49627b6d171d51e9c5</anchor>
      <arglist>(signal_handler_list)</arglist>
    </member>
    <member kind="variable">
      <type>void *</type>
      <name>tall_sigh_ctx</name>
      <anchorfile>group__signal.html</anchorfile>
      <anchor>ga2dd2b6ac5a7a35b5c834ccf82361e39b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>sockaddr_str</name>
    <title>IP address/port utilities.</title>
    <filename>group__sockaddr__str.html</filename>
    <file>sockaddr_str.h</file>
    <class kind="struct">osmo_sockaddr_str</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCKADDR_STR_FMT</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gacbcacc5429078f8b244928a92a8041fe</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCKADDR_STR_FMT_ARGS_NOT_NULL</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga557fc04af8e36cf0f69680da091d1001</anchor>
      <arglist>(R)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCKADDR_STR_FMT_ARGS</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga44e102d6ce265f3acaa7e540c7376a1d</anchor>
      <arglist>(R)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_ip_str_type</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga4177f6f9287d8963ea58a554d99d44d6</anchor>
      <arglist>(const char *ip)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_sockaddr_str_is_set</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga5b1c364309537a77bd3a85f430772a44</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_sockaddr_str_is_nonzero</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga7a8ba06f6ab31056048af621348dfd30</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_cmp</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga0942ff1dcde89d8ce4e14a6cf7baf277</anchor>
      <arglist>(const struct osmo_sockaddr_str *a, const struct osmo_sockaddr_str *b)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_str</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga082e00a6b6cd0864dc783b1e181eb937</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const char *ip, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_str2</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaf7987340f6f4e12ecf9afa7436560c10</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const char *ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_in_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga9443ca32f5bb8f162ea122f216f0e2be</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct in_addr *addr, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_in6_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga6cd6db8f1f0e321be47c227799c7d741</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct in6_addr *addr, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_32</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaf6a4c9a32488786a7a97195806f8ca2e</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_32h</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaf81cade4b86a1257e8e0c552ce79d5e4</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_sockaddr_in</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gab1081a1dac76fb2d1827c7ff733aa4c0</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_in *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_sockaddr_in6</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gae78d6274467308bbb88d840d0fc6f1bf</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_in6 *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_sockaddr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gadafc2ead9cb89466b621894b3ebce04f</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct sockaddr_storage *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_osa</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga3c1bc87b46c3f1fe09958ab24601e4a0</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, const struct osmo_sockaddr *src)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_in_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaabb64cc261c5fe48f14ff8a2ed77de73</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct in_addr *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_in6_addr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga55e92e54fc566ddabcbd7cca3a774f3d</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct in6_addr *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_32</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga0a1cc4911408f68de6b59648163cd532</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_32h</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga616a1d04b70ee569215046fde6397d74</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_sockaddr_in</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga707fee0f0eddf74524953170b000c633</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_in *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_sockaddr_in6</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga07ada92e0f6bd676ee1c1abb958f16df</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_in6 *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_sockaddr</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>ga33da0e68877b611c33021f33c3d85318</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct sockaddr_storage *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_osa</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gab382ac8fe286de5cce9c9f0398e75006</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, struct osmo_sockaddr *dst)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_from_32n</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gabc4bf3f0af002b846d9f0b0e700bad8b</anchor>
      <arglist>(struct osmo_sockaddr_str *sockaddr_str, uint32_t ip, uint16_t port) OSMO_DEPRECATED(&quot;osmo_sockaddr_str_from_32n() actually uses *host* byte order. Use osmo_sockaddr_str_from_32h() instead&quot;)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_str_to_32n</name>
      <anchorfile>group__sockaddr__str.html</anchorfile>
      <anchor>gaac1fbfabad8054638264db0b3afe72c4</anchor>
      <arglist>(const struct osmo_sockaddr_str *sockaddr_str, uint32_t *ip) OSMO_DEPRECATED(&quot;osmo_sockaddr_str_to_32n() actually uses *host* byte order. Use osmo_sockaddr_str_to_32h() instead&quot;)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>socket</name>
    <title>Socket convenience functions</title>
    <filename>group__socket.html</filename>
    <file>socket.h</file>
    <file>socket.c</file>
    <class kind="struct">osmo_sockaddr</class>
    <class kind="struct">osmo_sock_init2_multiaddr_pars</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_MAX_ADDRS</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae4c08dc00d7838698bc30966691f5760</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_NAME_MAXLEN</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga22a44e09d135767610646c73e7abe57f</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_MULTIADDR_PEER_STR_MAXLEN</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaf4d29d5d47130a624c2f0cb4e45535da</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_MULTIADDR_NAME_MAXLEN</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gac2608bdadb53f7c9c19ae0ed6f9166db</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_CONNECT</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaa686c67100001f1b7be0e8f00a770c37</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_BIND</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga642c796a06636fe18f1daea1bbf1cc13</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_NONBLOCK</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga27b043d6ad4ceb700a863e17db7fc670</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_NO_MCAST_LOOP</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaecc9539e779824d52eaa8a3c37e941c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_NO_MCAST_ALL</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga1af36cd850690c8f592caa8f2dc3e612</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_UDP_REUSEADDR</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gacf7b1899fb6ccaeb8703ef4eded34684</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_DSCP</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6f3cbc5dea1ebecd6a4312ea65666627</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GET_OSMO_SOCK_F_DSCP</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga4970b1b90d27644ff2ab37a33d1a09c5</anchor>
      <arglist>(f)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SOCK_F_PRIO</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3d96505ab56ed6051eca99ab76f16ca3</anchor>
      <arglist>(x)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GET_OSMO_SOCK_F_PRIO</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3a268537621c5097a00a50819fc67d74</anchor>
      <arglist>(f)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_is_local</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaada6ed9f0b165ba0d5b87b296019a3c3</anchor>
      <arglist>(struct sockaddr *addr, unsigned int addrlen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_is_any</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga4cf2d01f4571c6c41e63f739c2801a3d</anchor>
      <arglist>(const struct osmo_sockaddr *addr)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static socklen_t</type>
      <name>osmo_sockaddr_size</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga2593ce381512d4616186386b4b46894e</anchor>
      <arglist>(const struct osmo_sockaddr *addr)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_sockaddr_to_str_and_uint</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga85e86cf67b2c967170b6a9068eb1a98d</anchor>
      <arglist>(char *addr, unsigned int addr_len, uint16_t *port, const struct sockaddr *sa)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_sockaddr_in_to_str_and_uint</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga0695d8b527844e0d635536a66f0276a4</anchor>
      <arglist>(char *addr, unsigned int addr_len, uint16_t *port, const struct sockaddr_in *sin)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_sockaddr_ntop</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga28fe7ce47715dbea88271b0ed6fa2404</anchor>
      <arglist>(const struct sockaddr *sa, char *dst)</arglist>
    </member>
    <member kind="function">
      <type>uint16_t</type>
      <name>osmo_sockaddr_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3a3a807a0cfac8ba92e4fab518a1dce8</anchor>
      <arglist>(const struct sockaddr *sa)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_sockaddr_set_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga345c1c06891aa2c9d02e352c5bc78eb8</anchor>
      <arglist>(struct sockaddr *sa, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_local_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga485530c80633f84427da59f27be8f0f2</anchor>
      <arglist>(struct osmo_sockaddr *local_ip, const struct osmo_sockaddr *remote_ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_cmp</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga00b04e05323b733fa52937ccdb5e7afd</anchor>
      <arglist>(const struct osmo_sockaddr *a, const struct osmo_sockaddr *b)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_to_octets</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6e09b835c0d7fd46e07c3b51da3a950b</anchor>
      <arglist>(uint8_t *dst, size_t dst_maxlen, const struct osmo_sockaddr *os)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_from_octets</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga86058fac21a55fd2f7710defe338f3aa</anchor>
      <arglist>(struct osmo_sockaddr *os, const void *src, size_t src_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_from_str_and_uint</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5ce65b23c53fa2e03b5b37d170fea066</anchor>
      <arglist>(struct osmo_sockaddr *osa_out, const char *ipstr, uint16_t port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_netmask_to_prefixlen</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga72afd420dd1cbe5f53661e1e2421a8e0</anchor>
      <arglist>(const struct osmo_sockaddr *addr)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_sockaddr_to_str</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga793ce40b40fad45721a9b81476c356d3</anchor>
      <arglist>(const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sockaddr_to_str_buf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga352118db1d772f5af9eb08743d12fdcd</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sockaddr_to_str_buf2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga85363264fab8d26e417f6535f16f8382</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sockaddr_to_str_c</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3859ef3f3d2bd5c3c6623b7838016ff9</anchor>
      <arglist>(void *ctx, const struct osmo_sockaddr *sockaddr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6541a3a4c15bc6c8fbcbe5fcbe0de640</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char *host, uint16_t port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga95ffbbf949feb5939de9fa70f70be9ee</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char *local_host, uint16_t local_port, const char *remote_host, uint16_t remote_port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2_multiaddr</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gab0e1e4c91993c8d20b567c31e99cc64b</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char **local_hosts, size_t local_hosts_cnt, uint16_t local_port, const char **remote_hosts, size_t remote_hosts_cnt, uint16_t remote_port, unsigned int flags) OSMO_DEPRECATED_OUTSIDE(&quot;Use osmo_sock_init2_multiaddr2() instead&quot;)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2_multiaddr2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaac9e12947211a1c1037c2ba914a4e088</anchor>
      <arglist>(uint16_t family, uint16_t type, uint8_t proto, const char **local_hosts, size_t local_hosts_cnt, uint16_t local_port, const char **remote_hosts, size_t remote_hosts_cnt, uint16_t remote_port, unsigned int flags, struct osmo_sock_init2_multiaddr_pars *pars)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_osa</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga0e00f552ace126ec3a284faeb34b3813</anchor>
      <arglist>(uint16_t type, uint8_t proto, const struct osmo_sockaddr *local, const struct osmo_sockaddr *remote, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga66109962305745831fcd461483179534</anchor>
      <arglist>(struct osmo_fd *ofd, int family, int type, int proto, const char *host, uint16_t port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init2_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga67a4d3cca7937c4a8e40e98c01fcfb98</anchor>
      <arglist>(struct osmo_fd *ofd, int family, int type, int proto, const char *local_host, uint16_t local_port, const char *remote_host, uint16_t remote_port, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_osa_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gacf46828ab5f054147251ebe5715f1add</anchor>
      <arglist>(struct osmo_fd *ofd, int type, int proto, const struct osmo_sockaddr *local, const struct osmo_sockaddr *remote, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_init_sa</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gade7aa852d99c199675e68baac1fee73c</anchor>
      <arglist>(struct sockaddr *ss, uint16_t type, uint8_t proto, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_unix_init</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gad444f45f056e27aab3687c19b2e52753</anchor>
      <arglist>(uint16_t type, uint8_t proto, const char *socket_path, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_unix_init_ofd</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga97e142eb8d6437d16f916c3d03f6dd3c</anchor>
      <arglist>(struct osmo_fd *ofd, uint16_t type, uint8_t proto, const char *socket_path, unsigned int flags)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sock_get_name</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga42ee983e4f1feae807a87768de0b2af3</anchor>
      <arglist>(const void *ctx, int fd)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_sock_get_name2</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga7996f9b2938be6386d78af309906637d</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_sock_get_name2_c</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga3f0ec92748ad707c87b7758d549ab699</anchor>
      <arglist>(const void *ctx, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_name_buf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga4a407d661515fc2028e036e39cc37d64</anchor>
      <arglist>(char *str, size_t str_len, int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_ip_and_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga50a6e81b2f328d35ece2ab8005cefc6a</anchor>
      <arglist>(int fd, char *ip, size_t ip_len, char *port, size_t port_len, bool local)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_local_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga2fd9c4f771cb0e669c6a452e4dc52256</anchor>
      <arglist>(int fd, char *host, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_local_ip_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5d1cbb310e9dbe2856f0d324a7250f56</anchor>
      <arglist>(int fd, char *port, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_remote_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gac331a5587179fad782042b47e73cdcc8</anchor>
      <arglist>(int fd, char *host, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_remote_ip_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga79ef34f1de3375e3d4d3e890e9663e72</anchor>
      <arglist>(int fd, char *port, size_t len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_get_ip_and_port</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga8a6ba657e144a51505b3b702f2ef2514</anchor>
      <arglist>(int fd, int ip_proto, char *ip, size_t *ip_cnt, size_t ip_len, char *port, size_t port_len, bool local)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_multiaddr_ip_and_port_snprintf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga7236135a9d2ec8bccd8682ae7e9881fd</anchor>
      <arglist>(char *str, size_t str_len, const char *ip, size_t ip_cnt, size_t ip_len, const char *portbuf)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_get_name_buf</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gaecc22fd01a9c7d25977b3ead3cdf8be2</anchor>
      <arglist>(char *str, size_t str_len, int fd, int sk_proto)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_add_local_addr</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga231f23f7e66925c7b749f1b4a9614034</anchor>
      <arglist>(int sfd, const char **addrs, size_t addrs_cnt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_multiaddr_del_local_addr</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga519eca10e77a28ce141510f9f2816119</anchor>
      <arglist>(int sfd, const char **addrs, size_t addrs_cnt)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_loop_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5084bc78d5b1e27271586cb1285f147b</anchor>
      <arglist>(int fd, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_ttl_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga9a131f0fa9fb28ac1352081cd999b964</anchor>
      <arglist>(int fd, uint8_t ttl)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_all_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga7e0ad7f569f9725b1bc677826a7d3cd0</anchor>
      <arglist>(int fd, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_iface_set</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gac65f07a57203419611d8e925dd1e45b5</anchor>
      <arglist>(int fd, const char *ifname)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_mcast_subscribe</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae601bc27d51581ce69e4ea5ab35e8c8f</anchor>
      <arglist>(int fd, const char *grp_addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_local_ip</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae2060fed8214db649330bdca51b9c53c</anchor>
      <arglist>(char *local_ip, const char *remote_ip)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_set_dscp</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga9ccc0f95ae62e250a454e544c2595e47</anchor>
      <arglist>(int fd, uint8_t dscp)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_set_priority</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga5066129f926cd67d45d57225931741a1</anchor>
      <arglist>(int fd, int prio)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_get_nonblock</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae15494202f58f65f785ecd01cbe58c66</anchor>
      <arglist>(int fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_set_nonblock</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>gae5d5dec8c60cbf646b2f23dd74645bd9</anchor>
      <arglist>(int fd, int on)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_sock_sctp_get_peer_addr_info</name>
      <anchorfile>group__socket.html</anchorfile>
      <anchor>ga6ac818fa65b39d9a091ccb7ab0258cd2</anchor>
      <arglist>(int fd, struct sctp_paddrinfo *pinfo, size_t *pinfo_cnt)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>osmo_stat_item</name>
    <title>Statistics value item</title>
    <filename>group__osmo__stat__item.html</filename>
    <file>stat_item.h</file>
    <class kind="struct">osmo_stat_item_desc</class>
    <class kind="struct">osmo_stat_item_group_desc</class>
    <class kind="struct">osmo_stat_item_group</class>
    <class kind="struct">osmo_stat_item_period</class>
    <class kind="struct">osmo_stat_item</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STAT_ITEM_NOVALUE_ID</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gaf6f3007c03bc8114990c8b31bd030820</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_STAT_ITEM_NO_UNIT</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga5302c4affa8c6f44c37d58782abc1cc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_stat_item_handler_t</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gabebffafb8b666e2a52c0c4784eeabfbf</anchor>
      <arglist>)(struct osmo_stat_item_group *, struct osmo_stat_item *, void *)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_stat_item_group_handler_t</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gab6f48cb83fad5c21428d2dbb02af048a</anchor>
      <arglist>)(struct osmo_stat_item_group *, void *)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_group_alloc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gaa1a7c1500d64a803883ee7ff12ccf963</anchor>
      <arglist>(void *ctx, const struct osmo_stat_item_group_desc *group_desc, unsigned int idx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_stat_item_group_udp_idx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad86cf00ee8f70547c5b80159cf7d4678</anchor>
      <arglist>(struct osmo_stat_item_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item *</type>
      <name>osmo_stat_item_group_get_item</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad0553a8db021f131aca944e4200785ec</anchor>
      <arglist>(struct osmo_stat_item_group *grp, unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_set_name</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gadf35c36fb3cefaba1a1f9d7daa68bdf4</anchor>
      <arglist>(struct osmo_stat_item_group *statg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_free</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga070d81e1291c4f54abfb159cda2b5340</anchor>
      <arglist>(struct osmo_stat_item_group *grp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_inc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga45140f45c0e7e057f83c97ddab5330e6</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_dec</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga462b34eb55a9432b335f5e2cc32a5498</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_set</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gabf7ea5516b1929ca8b8b2d2e51c0f662</anchor>
      <arglist>(struct osmo_stat_item *item, int32_t value)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_init</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga9ac290aa2ab34c36fc86bf620adec408</anchor>
      <arglist>(void *tall_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_get_group_by_name_idx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga59062bfcaa3f804df9ac69bcf52a2fb4</anchor>
      <arglist>(const char *name, const unsigned int idx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stat_item_group *</type>
      <name>osmo_stat_item_get_group_by_name_idxname</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga49dec12c98ad324d7c255c8a4f9f6437</anchor>
      <arglist>(const char *group_name, const char *idx_name)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_stat_item *</type>
      <name>osmo_stat_item_get_by_name</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga088dc4ca88656f25e0a0a6bdfb024bc1</anchor>
      <arglist>(const struct osmo_stat_item_group *statg, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_stat_item_get_last</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga595e25b76fdca35c9e2ec5b4e4e4410a</anchor>
      <arglist>(const struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_flush</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga312b34dbb43757e505c5c215592c7552</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_for_each_item</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga4b20503c85250536c1fe215aa8f0caac</anchor>
      <arglist>(struct osmo_stat_item_group *statg, osmo_stat_item_handler_t handle_item, void *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stat_item_for_each_group</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gae1367b44f93a6ea46cbe90a955b06dda</anchor>
      <arglist>(osmo_stat_item_group_handler_t handle_group, void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_reset</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>gad3d919ff9ce0c85a69388252aeb257c9</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stat_item_group_reset</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga9522e7b07091b7ad531a41f07764359f</anchor>
      <arglist>(struct osmo_stat_item_group *statg)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_stat_item_desc *</type>
      <name>osmo_stat_item_get_desc</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga2b5922d91fc40c32c41e59dd7f87c9b7</anchor>
      <arglist>(struct osmo_stat_item *item)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static</type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga918922f0159b002fd13bf021ec3bc294</anchor>
      <arglist>(osmo_stat_item_groups)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static void *</type>
      <name>tall_stat_item_ctx</name>
      <anchorfile>group__osmo__stat__item.html</anchorfile>
      <anchor>ga7785ff605fed9985c603bf1a691c97a0</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>stats</name>
    <title>Statistics reporting</title>
    <filename>group__stats.html</filename>
    <file>stats.h</file>
    <file>stats.c</file>
    <file>stats_statsd.c</file>
    <file>stats_tcp.c</file>
    <class kind="struct">osmo_stats_reporter</class>
    <class kind="struct">osmo_stats_config</class>
    <member kind="define">
      <type>#define</type>
      <name>TRACE</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga9b44d241a9984069d3c9de002b6c149c</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TRACE_ENABLED</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaa753ae2ccad22fb27615272c6b2b04e0</anchor>
      <arglist>(probe)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>STATS_DEFAULT_INTERVAL</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gac2bb04a248ead7da04e3012ed277b003</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>STATS_DEFAULT_BUFLEN</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga9f25eb15952748082b42df8b60d563ce</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_stats_class</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gafddb6e01c247cdbeed1be06d9796aea3</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_UNKNOWN</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a0459a5d9b53597f2203ec2d77dfbc2a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_GLOBAL</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a3ad84bbf056b57bdc89e245c56174038</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_PEER</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a2ecdba3d9fb058b4599b47fce4e74471</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_CLASS_SUBSCRIBER</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ggafddb6e01c247cdbeed1be06d9796aea3a5e588a697b84b76f628a63e2acb54f5e</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_stats_reporter_type</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga920dfa18cd7fbbf34f52c6dcf92d692d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_REPORTER_LOG</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gga920dfa18cd7fbbf34f52c6dcf92d692da359f33b122453c1bfbbdcd4028091f6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_STATS_REPORTER_STATSD</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gga920dfa18cd7fbbf34f52c6dcf92d692da46bb81b0d1d1fe55f6fa50018e82cba8</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stats_init</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab6f9cb91a533a0b2a30cd075ec811acc</anchor>
      <arglist>(void *ctx)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_report</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga7b9e1f1d7a9e1e469fbb796bbe019fbc</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_set_interval</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga6b876111cf8223000e1e68aa85fa021d</anchor>
      <arglist>(int interval)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_alloc</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga0a6f227702938604e3162499395a1a9d</anchor>
      <arglist>(enum osmo_stats_reporter_type type, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_stats_reporter_free</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga16a001641deb34a4ff7106cf00bee62b</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_find</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga71590de43187f692b30b3ff315f11efb</anchor>
      <arglist>(enum osmo_stats_reporter_type type, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_remote_addr</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga898201b3f86936afe7c767e72fabd30a</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_remote_port</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga34ef3e79272f99afdca7ed7c2eeaf844</anchor>
      <arglist>(struct osmo_stats_reporter *srep, int port)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_local_addr</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab9a3e2056ec39cb2013e8dc3da7461d9</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *addr)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_mtu</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga55a1ab6d22940d1d19356e9c5dd0f6a5</anchor>
      <arglist>(struct osmo_stats_reporter *srep, int mtu)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_max_class</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga510a4ce51e37e732238cf3b0ba9c5d34</anchor>
      <arglist>(struct osmo_stats_reporter *srep, enum osmo_stats_class class_id)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_name_prefix</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1be0c1ca85a6f3cac145394648e973e3</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *prefix)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_enable</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gad4c76af3ecaf57ea243193bf33321da8</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_disable</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga411097be97933654c345f9fc29a27abc</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_set_flush_period</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2a07dfcee5d2d5bf13a287fc8f45adce</anchor>
      <arglist>(struct osmo_stats_reporter *srep, unsigned int period)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_create_log</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaa6e7ebfa5b99d90a5b465c93c8d40175</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_stats_reporter *</type>
      <name>osmo_stats_reporter_create_statsd</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga82f58af39526c20141673c7c33e8b1cc</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_send</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gadad3370deddae99f492506c173136a5b</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *data, int data_len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_send_buffer</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gad6f5b67ba5486abddbd1029bee186c74</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_udp_open</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga11fa50b5ad82e9805e8cbfa9910d3da4</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_reporter_udp_close</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga70ec5896932d94079ad55a537b7c5327</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LLIST_HEAD</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga4cfa9333d7da6952b2b86af3f3c5f1ae</anchor>
      <arglist>(osmo_stats_reporter_list)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_log_send_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gafc5d56a462747ffcd7d57fa761adf2bb</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_log_send_item</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gac3639eaadd98ace3c4e7c81119f85fbe</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int64_t value)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>update_srep_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gab7df28b2e32b2437bfc88185a1a5c06f</anchor>
      <arglist>(struct osmo_stats_reporter *srep)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_timer_cb</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gae722f21779b58b9cf1bafc9b4b97d8b1</anchor>
      <arglist>(struct osmo_fd *ofd, unsigned int what)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>start_timer</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf99f98cfd0da9f59b9e490bf04b12100</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_log_send</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2fc7f059975bf4a18b32171b931a641e</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *type, const char *name1, unsigned int index1, const char *name2, int value, const char *unit)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_check_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga915f63bb63276a8a98aad6c3cfac9124</anchor>
      <arglist>(struct osmo_stats_reporter *srep, unsigned int index, int class_id)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_send_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga74eb80f5d3bcfdc0e720975b96dd28f6</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>rate_ctr_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1b029e32e54b05edadbfcf4c814b12f9</anchor>
      <arglist>(struct rate_ctr_group *ctrg, struct rate_ctr *ctr, const struct rate_ctr_desc *desc, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>rate_ctr_group_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga47631ccc3d69c5bfa3fd0c48735a6612</anchor>
      <arglist>(struct rate_ctr_group *ctrg, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_send_item</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf90de2e2999acd6d49f9c6175fa3bcbb</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int32_t value)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stat_item_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf542dbe9d1e8d114dc9b81af94ed9f04</anchor>
      <arglist>(struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stat_item_group_handler</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga1f68226f8cab58ed861ed06aa70eeacc</anchor>
      <arglist>(struct osmo_stat_item_group *statg, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>handle_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaaf185b3549510e956756cad507846f93</anchor>
      <arglist>(struct osmo_counter *counter, void *sctx_)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>flush_all_reporters</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2e835741c94f1a7f0ca732cc3bcbd3b5</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_statsd_send_counter</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga3a41360f016ef3c9c58fb925611b9dbb</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct rate_ctr_group *ctrg, const struct rate_ctr_desc *desc, int64_t value, int64_t delta)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_statsd_send_item</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga2199d156ce5a865fed49582ab3c5d9f6</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const struct osmo_stat_item_group *statg, const struct osmo_stat_item_desc *desc, int64_t value)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>osmo_stats_reporter_sanitize_name</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gac75583e4c34f7749adfcc1dbd639beaa</anchor>
      <arglist>(char *buf)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>osmo_stats_reporter_statsd_send</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaae6bd21b1cd1869e42a8212b520d6375</anchor>
      <arglist>(struct osmo_stats_reporter *srep, const char *name1, const char *index1, const char *name2, int64_t value, const char *unit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_osmo_fd_register</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga355e09b1123c1271eeb5122a4b522349</anchor>
      <arglist>(const struct osmo_fd *fd, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_osmo_fd_unregister</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga05b395c0e693d508ce0eb6bbec07a506</anchor>
      <arglist>(const struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_stats_tcp_set_interval</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga867c62bffd27c6066a952a2b061b888b</anchor>
      <arglist>(int interval)</arglist>
    </member>
    <member kind="variable">
      <type>struct llist_head</type>
      <name>osmo_stats_reporter_list</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaef85c887394f0465c12a1fe46dfee1b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stats_config *</type>
      <name>osmo_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga69cc1eef57bf721fad3eb0b08b44231a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static void *</type>
      <name>osmo_stats_ctx</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga4e0b725ba99e4703c4d886dacda2557b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static int</type>
      <name>is_initialised</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga7f43ce07ecb101dec32db3ff82597024</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_stats_config</type>
      <name>s_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>gaf5364d1732312969d6ade23325ce1493</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_stats_config *</type>
      <name>osmo_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga69cc1eef57bf721fad3eb0b08b44231a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_fd</type>
      <name>osmo_stats_timer</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga54c4286630b9ee36ce26a8a71b5d3420</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct osmo_tcp_stats_config</type>
      <name>s_tcp_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga93f90d34c7469d7f3a5bfb46c03e9bc2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_tcp_stats_config *</type>
      <name>osmo_tcp_stats_config</name>
      <anchorfile>group__stats.html</anchorfile>
      <anchor>ga240c607283cc0da3b2f1732fa54b6ca6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>osmo_strrb</name>
    <title>Osmocom ringbuffers for log strings</title>
    <filename>group__osmo__strrb.html</filename>
    <file>strrb.h</file>
    <class kind="struct">osmo_strrb</class>
    <member kind="define">
      <type>#define</type>
      <name>RB_MAX_MESSAGE_SIZE</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gae7ea3048b7595e37ccb8f1039d98c5b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>struct osmo_strrb *</type>
      <name>osmo_strrb_create</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gaaab7bfea64d0b1b7e86dbd717d253a30</anchor>
      <arglist>(void *talloc_ctx, size_t rb_size)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_strrb_is_empty</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gaa8d2f58d4f27e99836d85b5e5c568136</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_strrb_get_nth</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>ga284dcee685ff37d0138d1f739ff24d20</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int string_index)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>_osmo_strrb_is_bufindex_valid</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gaa84efdd0a46d6212b416957432cf87a7</anchor>
      <arglist>(const struct osmo_strrb *rb, unsigned int offset)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_strrb_elements</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>gac730d01ff38c9eb9e9f10ce1f12cf3f0</anchor>
      <arglist>(const struct osmo_strrb *rb)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_strrb_add</name>
      <anchorfile>group__osmo__strrb.html</anchorfile>
      <anchor>ga3d8e138301a2fc21779b7259831a677c</anchor>
      <arglist>(struct osmo_strrb *rb, const char *data)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>Tdef</name>
    <title>Tnnn timer configuration</title>
    <filename>group__Tdef.html</filename>
    <file>tdef.h</file>
    <file>tdef.c</file>
    <class kind="struct">osmo_tdef</class>
    <class kind="struct">osmo_tdef_state_timeout</class>
    <class kind="struct">osmo_tdef_group</class>
    <member kind="define">
      <type>#define</type>
      <name>osmo_tdef_for_each</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga9bfa6d2933254ee56979be1f0230cf71</anchor>
      <arglist>(t, tdefs)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_tdef_fsm_inst_state_chg</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga62ef360585a2162bcac01c588025ce97</anchor>
      <arglist>(fi, state, timeouts_array, tdefs, default_timeout)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>osmo_tdef_groups_for_each</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga6b2e21ca953ab535e36f9b851d9558a5</anchor>
      <arglist>(g, tdef_groups)</arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>osmo_tdef_unit</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gaab870deed1871d59911bcd465b410f6a</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_S</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aacd7acf38bfb806b297369d3967b8151d</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_MS</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aae9571204a5e1dc1b575f94c11bc47474</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_M</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aa757bb613b8f209d4d9e0c2d6622e06bc</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_CUSTOM</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aa12615b1124e5e25e0a0ad4e5b13adef5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>OSMO_TDEF_US</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ggaab870deed1871d59911bcd465b410f6aa4cf1495f9310e61a17527be25486e4cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" static="yes">
      <type>static const char *</type>
      <name>osmo_tdef_unit_name</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0625620798fea884f7a63efbc58defd1</anchor>
      <arglist>(enum osmo_tdef_unit val)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tdefs_reset</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0a2cda1d30e23023cc179b68b8c624e6</anchor>
      <arglist>(struct osmo_tdef *tdefs)</arglist>
    </member>
    <member kind="function">
      <type>unsigned long</type>
      <name>osmo_tdef_get</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga1902036c8ce361a6ba043b90f3026ae7</anchor>
      <arglist>(const struct osmo_tdef *tdefs, int T, enum osmo_tdef_unit as_unit, long val_if_not_present)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_tdef *</type>
      <name>osmo_tdef_get_entry</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga165520a7b18876662703753759941e00</anchor>
      <arglist>(struct osmo_tdef *tdefs, int T)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tdef_set</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gab2f59867f10a781019db1d52c991ce95</anchor>
      <arglist>(struct osmo_tdef *tdefs, int T, unsigned long val, enum osmo_tdef_unit val_unit)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_tdef_val_in_range</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4b9908c0c45f1226f4fae760141d54b4</anchor>
      <arglist>(struct osmo_tdef *tdef, unsigned long new_val)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tdef_range_str_buf</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga88e3725d03ea8ab0edf8013333dfedad</anchor>
      <arglist>(char *buf, size_t buf_len, struct osmo_tdef *t)</arglist>
    </member>
    <member kind="function">
      <type>const struct osmo_tdef_state_timeout *</type>
      <name>osmo_tdef_get_state_timeout</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga5a7532bad13a88526390b8f3c6db3374</anchor>
      <arglist>(uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_tdef_fsm_inst_state_chg</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0949811a3638747d3ba5fc2eeba9b94c</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, const struct osmo_tdef *tdefs, signed long default_timeout, const char *file, int line)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned long</type>
      <name>osmo_tdef_factor</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>gae2c06fad8c067d3ae2d6ebbaa133e070</anchor>
      <arglist>(enum osmo_tdef_unit a, enum osmo_tdef_unit b)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static unsigned long</type>
      <name>osmo_tdef_round</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga95e55c67fc577ce73009b70f1a3c432b</anchor>
      <arglist>(unsigned long val, enum osmo_tdef_unit from_unit, enum osmo_tdef_unit to_unit)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_tdef_fsm_inst_state_chg</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga0f528b78c3b8875971f0fcbbaa52e1c6</anchor>
      <arglist>(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, const struct osmo_tdef *tdefs, long default_timeout, const char *file, int line)</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_tdef_unit_names</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4ad5be5f9d49274b4bce18320cf251b5</anchor>
      <arglist>[]</arglist>
    </member>
    <member kind="variable">
      <type>const struct value_string</type>
      <name>osmo_tdef_unit_names</name>
      <anchorfile>group__Tdef.html</anchorfile>
      <anchor>ga4ad5be5f9d49274b4bce18320cf251b5</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>thread</name>
    <title>Osmocom thread helpers</title>
    <filename>group__thread.html</filename>
    <file>thread.h</file>
    <file>thread.c</file>
    <file>thread.c</file>
    <member kind="function">
      <type>pid_t</type>
      <name>osmo_gettid</name>
      <anchorfile>group__thread.html</anchorfile>
      <anchor>gab13692b0278938fdaf76c8919c842403</anchor>
      <arglist>(void)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>time_cc</name>
    <title>Cumulative counter of time as rate counter.</title>
    <filename>group__time__cc.html</filename>
    <file>time_cc.h</file>
    <file>time_cc.c</file>
    <class kind="struct">osmo_time_cc_cfg</class>
    <class kind="struct">osmo_time_cc</class>
    <member kind="function">
      <type>void</type>
      <name>osmo_time_cc_init</name>
      <anchorfile>group__time__cc.html</anchorfile>
      <anchor>gad234a5e207b1cef57390a2390ed8fc8e</anchor>
      <arglist>(struct osmo_time_cc *tc)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_time_cc_set_flag</name>
      <anchorfile>group__time__cc.html</anchorfile>
      <anchor>ga1feb41a008ddeffe6b77a8d2569a14d4</anchor>
      <arglist>(struct osmo_time_cc *tc, bool flag)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_time_cc_cleanup</name>
      <anchorfile>group__time__cc.html</anchorfile>
      <anchor>ga4586caf5730ea675afb0dfd64a1ade32</anchor>
      <arglist>(struct osmo_time_cc *tc)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>timer</name>
    <title>Osmocom timers</title>
    <filename>group__timer.html</filename>
    <file>timer.h</file>
    <file>timer_compat.h</file>
    <file>timer.c</file>
    <file>timer_clockgettime.c</file>
    <file>timer_clockgettime.c</file>
    <file>timer_gettimeofday.c</file>
    <class kind="struct">osmo_timer_list</class>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SEC2MIN</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaeb0aef725070ccb9dde39f04560edd87</anchor>
      <arglist>(sec)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SEC2HRS</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga5bd927eac440e0f201f75db8807fac16</anchor>
      <arglist>(sec)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>OSMO_SEC2DAY</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaef03caac6db664db7f175d1343408bec</anchor>
      <arglist>(sec)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timerisset</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7a6810e8127f008279242fba997a26a3</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timerclear</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gab95d90a9147b65d4ec1fab6bd2db6d1f</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timercmp</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga9740b405322c5d2a83d93426df96f79a</anchor>
      <arglist>(a, b, CMP)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timeradd</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7c04f2eb10391cb3ca3b47882d23d2de</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timersub</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8b18f762e42417ce5d86090331d3e4eb</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecisset</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga51ac4b0f81c859d848603902aa4589cb</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecclear</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga22bb57ee2311580af998bad329a7a914</anchor>
      <arglist>(tvp)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespeccmp</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac4d93ba1cba658e2cf0d52b93593055e</anchor>
      <arglist>(a, b, CMP)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecadd</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga9b866aa4069676f631f63d80a61d1116</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>timespecsub</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaaf525183a6e0d9903a2511619c57d2ce</anchor>
      <arglist>(a, b, result)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_setup</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga7d8def422a9bf39b4d5aefa1fec319e0</anchor>
      <arglist>(struct osmo_timer_list *timer, void(*cb)(void *data), void *data)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8eb1bef581081eb105265e56b15945fa</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_schedule</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga93a296b92775fc08c60eb154a3389e5b</anchor>
      <arglist>(struct osmo_timer_list *timer, int seconds, int microseconds)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timer_del</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga1aa977a3eb2d5b5447b8acd32002b6cf</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timer_pending</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gacf319b1650bff4a8d1536d7557b45563</anchor>
      <arglist>(const struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timer_remaining</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga0e6d99128b6f5e318df78a20c022c068</anchor>
      <arglist>(const struct osmo_timer_list *timer, const struct timeval *now, struct timeval *remaining)</arglist>
    </member>
    <member kind="function">
      <type>struct timeval *</type>
      <name>osmo_timers_nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga5766d10a219da5e6ab283fede26d2e40</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_nearest_ms</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaf7cf25cb666a6c07994b979dc83838fe</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_timers_prepare</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga420626edb507e81884f9842572a83467</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_update</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gaf8d555ef1c2e59ed54f0e12e2ee1f41c</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_timers_check</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gada843afa93f84337776c8efc1b539fe3</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_gettimeofday</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8c559c124f4720d0a54af5f206681049</anchor>
      <arglist>(struct timeval *tv, struct timezone *tz)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_clock_gettime</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac11a65dfcd1245fa716356d3650d2a6e</anchor>
      <arglist>(clockid_t clk_id, struct timespec *tp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_gettimeofday_override_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gafcbae57ab2c2635d0dd248ec3011bd1c</anchor>
      <arglist>(time_t secs, suseconds_t usecs)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_clock_override_enable</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga3e8cfe4cad482612d1bd8a3df75d2d02</anchor>
      <arglist>(clockid_t clk_id, bool enable)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_clock_override_add</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga86a811781179d144f268c0986b7140a9</anchor>
      <arglist>(clockid_t clk_id, time_t secs, long nsecs)</arglist>
    </member>
    <member kind="function">
      <type>struct timespec *</type>
      <name>osmo_clock_override_gettimespec</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga08c514dddc196eaa1422dbdee8250b70</anchor>
      <arglist>(clockid_t clk_id)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>__add_timer</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga372d9a79777dbdec72e7a19476111b63</anchor>
      <arglist>(struct osmo_timer_list *timer)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>update_nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga0c625e3072119d895980fefcd207c14d</anchor>
      <arglist>(struct timeval *cand, struct timeval *current)</arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>osmo_gettimeofday_override</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac10c80c84b5f61c509d36f59de66e42f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct timeval</type>
      <name>osmo_gettimeofday_override_time</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac0b4877db25000054ec9226dc39a7a79</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct timeval</type>
      <name>nearest</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga6a22a3c698847d0f033bd656e617fc34</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct timeval *</type>
      <name>nearest_p</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga3a61b742c5d1830cf0719b5d8b32ddcf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static __thread struct rb_root</type>
      <name>timer_root</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>ga8733ce9a99e5a3780ff71baae89a9ccd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>osmo_gettimeofday_override</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac10c80c84b5f61c509d36f59de66e42f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct timeval</type>
      <name>osmo_gettimeofday_override_time</name>
      <anchorfile>group__timer.html</anchorfile>
      <anchor>gac0b4877db25000054ec9226dc39a7a79</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>use_count</name>
    <title>Use Counter</title>
    <filename>group__use__count.html</filename>
    <file>use_count.h</file>
    <file>use_count.c</file>
    <class kind="struct">osmo_use_count</class>
    <class kind="struct">osmo_use_count_entry</class>
    <member kind="define">
      <type>#define</type>
      <name>osmo_use_count_get_put</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga3457c05c5d2b707d99eb01704dc5f233</anchor>
      <arglist>(USE_LIST, USE, CHANGE)</arglist>
    </member>
    <member kind="typedef">
      <type>int(*</type>
      <name>osmo_use_count_cb_t</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga4497d9dc69e733d16d33a455d385931e</anchor>
      <arglist>)(struct osmo_use_count_entry *use_count_entry, int32_t old_use_count, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>_osmo_use_count_get_put</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gad3fc149e66e6f9157843169f27ce571a</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use, int32_t change, const char *file, int line)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_use_count_name_buf</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga7b49bfded7003847ba6bcf2e021cb4d9</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_use_count_to_str_buf</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga0a979c7c3979e7cbb0981172c426a00f</anchor>
      <arglist>(char *buf, size_t buf_len, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>char *</type>
      <name>osmo_use_count_to_str_c</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gac2e6c82a4809bae02212a09ce1e22a21</anchor>
      <arglist>(void *ctx, const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_use_count_total</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga34703c11c4da78bebd3322635b57e698</anchor>
      <arglist>(const struct osmo_use_count *uc)</arglist>
    </member>
    <member kind="function">
      <type>int32_t</type>
      <name>osmo_use_count_by</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gae221053a7e938cc89864a29cd72bb971</anchor>
      <arglist>(const struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_use_count_entry *</type>
      <name>osmo_use_count_find</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga0dcc3abaab263ca652b99214f2396298</anchor>
      <arglist>(const struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_use_count_free</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga7d4005ec0820c11ef960ea966b6baff9</anchor>
      <arglist>(struct osmo_use_count_entry *use_count_entry)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_use_count_make_static_entries</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga1d3601b4f5093407d57ca3f5e1c093cc</anchor>
      <arglist>(struct osmo_use_count *uc, struct osmo_use_count_entry *buf, size_t buf_n_entries)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static bool</type>
      <name>count_safe</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>gaf2aa74b203011c4359eb13cb886beae7</anchor>
      <arglist>(int32_t *val_p, int32_t add)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct osmo_use_count_entry *</type>
      <name>osmo_use_count_repurpose_zero_entry</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga98cee57f336dcd019ccce57563e2b2ea</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct osmo_use_count_entry *</type>
      <name>osmo_use_count_create</name>
      <anchorfile>group__use__count.html</anchorfile>
      <anchor>ga90705ba109a7da55760fba37c5821817</anchor>
      <arglist>(struct osmo_use_count *uc, const char *use)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>write_queue</name>
    <title>Osmocom msgb write queues</title>
    <filename>group__write__queue.html</filename>
    <file>write_queue.h</file>
    <file>write_queue.c</file>
    <class kind="struct">osmo_wqueue</class>
    <member kind="function">
      <type>void</type>
      <name>osmo_wqueue_init</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>gacca6343dd66b8cac8a5055b2a16eb990</anchor>
      <arglist>(struct osmo_wqueue *queue, int max_length)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_wqueue_clear</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga833b4f5244c00c775260a83e9918073c</anchor>
      <arglist>(struct osmo_wqueue *queue)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_enqueue</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga9855de966a4f01d6df3a747422b02824</anchor>
      <arglist>(struct osmo_wqueue *queue, struct msgb *data)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_enqueue_quiet</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga7d4207497c2a2852f98ecf805424a504</anchor>
      <arglist>(struct osmo_wqueue *queue, struct msgb *data)</arglist>
    </member>
    <member kind="function">
      <type>size_t</type>
      <name>osmo_wqueue_set_maxlen</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga662e3311b8f57f2cbc0fbe741462dbca</anchor>
      <arglist>(struct osmo_wqueue *queue, unsigned int len)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_wqueue_bfd_cb</name>
      <anchorfile>group__write__queue.html</anchorfile>
      <anchor>ga56bb1b9d13a946be09fdbf400545d7ad</anchor>
      <arglist>(struct osmo_fd *fd, unsigned int what)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>it_q</name>
    <title>It_q</title>
    <filename>group__it__q.html</filename>
  </compound>
  <compound kind="group">
    <name>netdev</name>
    <title>Netdev</title>
    <filename>group__netdev.html</filename>
    <file>netdev.c</file>
    <class kind="struct">netdev_netns_ctx</class>
    <class kind="struct">osmo_netdev</class>
    <member kind="define">
      <type>#define</type>
      <name>IFINDEX_UNUSED</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga4ada97f372aa49d80609df05f03cf22d</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGNETDEV</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gab5dc692ce52be4e4fceac01d7d7f37a7</anchor>
      <arglist>(netdev, lvl, fmt, args ...)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETDEV_NETNS_ENTER</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga969600e117b60bbf37373c285429b6b9</anchor>
      <arglist>(netdev, switch_state, str_prefix)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETDEV_NETNS_EXIT</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga22138414127e915e3de3588e11ded38c</anchor>
      <arglist>(netdev, switch_state, str_prefix)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct netdev_netns_ctx *</type>
      <name>netdev_netns_ctx_alloc</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gae3898d5fb30e050bf7af51c3d03f9d84</anchor>
      <arglist>(void *ctx, const char *netns_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>netdev_netns_ctx_free</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga9169d1aa2ca7fb9bd07026357f243b83</anchor>
      <arglist>(struct netdev_netns_ctx *netns_ctx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>netdev_netns_ctx_init</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga3b65d35445cb42434ebc36f5b6790c98</anchor>
      <arglist>(struct netdev_netns_ctx *netns_ctx)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct netdev_netns_ctx *</type>
      <name>netdev_netns_ctx_find_by_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gacf3819f21848a90b2d993dc108554cb7</anchor>
      <arglist>(const char *netns_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static struct netdev_netns_ctx *</type>
      <name>netdev_netns_ctx_get</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga9c55df043ea41970ed82d1c492a4b2dd</anchor>
      <arglist>(const char *netns_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static void</type>
      <name>netdev_netns_ctx_put</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gab396629a3b50261d6a5984c706ce298a</anchor>
      <arglist>(struct netdev_netns_ctx *netns_ctx)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_netdev *</type>
      <name>osmo_netdev_alloc</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga32e80af9f73ffa365aa4f29d2b2f4694</anchor>
      <arglist>(void *ctx, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_free</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaecbec5417790f43d80d16183f17e42ec</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_register</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaec0126c21739421bb5e662a97a75b7e1</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_unregister</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga8a7a3ebc822eec1042214c3f21e6ff1f</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_netdev_is_registered</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga337c7b72b1ae03b12fc450b40ae35dad</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_priv_data</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga4866aa0d1f95e3d029fc3dc6d4902d97</anchor>
      <arglist>(struct osmo_netdev *netdev, void *priv_data)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_netdev_get_priv_data</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga739ed172d1ab973677f45d1ec1e84fe1</anchor>
      <arglist>(struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_ifupdown_ind_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gababee4a5d0c92a512a2341cda69f39b9</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_ifupdown_ind_cb_t ifupdown_ind_cb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_dev_name_chg_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gac844662701678dd871da96dc0087ae52</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_dev_name_chg_cb_t dev_name_chg_cb)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_netdev_set_mtu_chg_cb</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7bd8f74ebaa249c39ebb763ce75d3fba</anchor>
      <arglist>(struct osmo_netdev *netdev, osmo_netdev_mtu_chg_cb_t mtu_chg_cb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gad9fc6b9f309dcd3870ee2b5ac6156558</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_ifindex</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7281946d49b12d0a7c4eb4c16f558de7</anchor>
      <arglist>(struct osmo_netdev *netdev, unsigned int ifindex)</arglist>
    </member>
    <member kind="function">
      <type>unsigned int</type>
      <name>osmo_netdev_get_ifindex</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga2b39c6854bc31bd9f249cf6573122b45</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga0dd272ca87047c551d30df56353af378</anchor>
      <arglist>(struct osmo_netdev *netdev, const char *netns_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_netns_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gac398f4cda6c1be1ed1a9f4891e2ef27e</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_netdev_get_dev_name</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga7dcaccdf71b69fabc3314f6572e376b5</anchor>
      <arglist>(const struct osmo_netdev *netdev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_set_mtu</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gad11e6788b3fb89bd8bcd810018aadbbd</anchor>
      <arglist>(struct osmo_netdev *netdev, uint32_t mtu)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_ifupdown</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>gaf9cb007a767215b58bbac2912ad8b7b6</anchor>
      <arglist>(struct osmo_netdev *netdev, bool ifupdown)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_add_addr</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga825bf951a8c5fc3792c2f8e038b6f623</anchor>
      <arglist>(struct osmo_netdev *netdev, const struct osmo_sockaddr *addr, uint8_t prefixlen)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netdev_add_route</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga780d0f6069c596a41383b619e3ce0bb9</anchor>
      <arglist>(struct osmo_netdev *netdev, const struct osmo_sockaddr *dst_addr, uint8_t dst_prefixlen, const struct osmo_sockaddr *gw_addr)</arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct llist_head</type>
      <name>g_netdev_netns_ctx_list</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga65309d7955fccd5c1d97b1b0bfccced9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" static="yes">
      <type>static struct llist_head</type>
      <name>g_netdev_list</name>
      <anchorfile>group__netdev.html</anchorfile>
      <anchor>ga0293c3a48fcf58db0d868841e7e411c4</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>netns</name>
    <title>Netns</title>
    <filename>group__netns.html</filename>
    <file>netns.c</file>
    <member kind="define">
      <type>#define</type>
      <name>_GNU_SOURCE</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga369266c24eacffb87046522897a570d5</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETNS_PREFIX_PATH</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gabe26a585817471419f8fb2fb09a91a95</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>NETNS_CURRENT_PATH</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga9fd453e784a7796939100c1a30a6ab93</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_switch_enter</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga78aa2179b3dc90dfac0d0ac4cd12c9ce</anchor>
      <arglist>(int nsfd, struct osmo_netns_switch_state *state)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_switch_exit</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gaaed38f1781aeeaf93d6b399359358ab4</anchor>
      <arglist>(struct osmo_netns_switch_state *state)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>create_netns</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>ga22f3010073b79b212d0b766686b9912c</anchor>
      <arglist>(const char *name)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_netns_open_fd</name>
      <anchorfile>group__netns.html</anchorfile>
      <anchor>gaf99b37aab415c93e1b1a083b9d1a7366</anchor>
      <arglist>(const char *name)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>tun</name>
    <title>Tun</title>
    <filename>group__tun.html</filename>
    <class kind="struct">osmo_tundev</class>
    <member kind="define">
      <type>#define</type>
      <name>TUN_DEV_PATH</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga98bdc6d5a45d3b24e4b3a3ed19cafa0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>TUN_PACKET_MAX</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga60304322931dd9d053a88072ca59c875</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>LOGTUN</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga8f4af10f5c20dcb47e517499d5c0c2b2</anchor>
      <arglist>(tun, lvl, fmt, args ...)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_decaps</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab7bb4ad4360d0d0bdb5ccb4659276a1d</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_read_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab4b9fc3bfbaa99ea7aaa4b6630656674</anchor>
      <arglist>(struct osmo_fd *fd)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_write_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga7bb8d07849ef9d7bc1a6d413fecc41d1</anchor>
      <arglist>(struct osmo_fd *fd, struct msgb *msg)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_ifupdown_ind_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga5d311ac51f718729e227b76e0f9dd474</anchor>
      <arglist>(struct osmo_netdev *netdev, bool ifupdown)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_dev_name_chg_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga1b714e0b4e6a3d45e965fc97fc6fd09d</anchor>
      <arglist>(struct osmo_netdev *netdev, const char *new_dev_name)</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static int</type>
      <name>tundev_mtu_chg_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae9508aad437383431d53b14e07286d3b</anchor>
      <arglist>(struct osmo_netdev *netdev, uint32_t new_mtu)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_tundev *</type>
      <name>osmo_tundev_alloc</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga36875a4a026aacc52bf5d45569d2e523</anchor>
      <arglist>(void *ctx, const char *name)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_free</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaa5a54e97b016d59ed2b03a16491eda76</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_open</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae6ce16c4c73663ae523b4e3a2638d644</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_close</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gad321860ec0c2be297c48d580918c811c</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>osmo_tundev_is_open</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga384c5bfc84a2fd78a8730adacd6061d1</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_set_priv_data</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga35fdce0913f5c26802ef2350cd0531ef</anchor>
      <arglist>(struct osmo_tundev *tundev, void *priv_data)</arglist>
    </member>
    <member kind="function">
      <type>void *</type>
      <name>osmo_tundev_get_priv_data</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga73eeb43489a75e38c495a1aabebdf7bf</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>osmo_tundev_set_data_ind_cb</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gab4cc44199ac0b7ab25cd0b3444d76c7d</anchor>
      <arglist>(struct osmo_tundev *tundev, osmo_tundev_data_ind_cb_t data_ind_cb)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaae3e8b0fe9f1bc8b6dbfd5b26ef0df2b</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_get_fd</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga841211492d9aeed4f1b0fbe451b42584</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_set_dev_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga58fa0f32b02698e91cdbfff89e44307d</anchor>
      <arglist>(struct osmo_tundev *tundev, const char *dev_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_dev_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga22ef1c28ec0c985e742950ef331270bc</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_set_netns_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gae31a6b8fa612faaf21aaa0c339e23e0b</anchor>
      <arglist>(struct osmo_tundev *tundev, const char *netns_name)</arglist>
    </member>
    <member kind="function">
      <type>const char *</type>
      <name>osmo_tundev_get_netns_name</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gaa71cfeea8d70f6527a5c9f8e59c2d790</anchor>
      <arglist>(const struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>struct osmo_netdev *</type>
      <name>osmo_tundev_get_netdev</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>ga7787e7fe210d9c7ea62a49042412ac20</anchor>
      <arglist>(struct osmo_tundev *tundev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>osmo_tundev_send</name>
      <anchorfile>group__tun.html</anchorfile>
      <anchor>gabd21998a822758c2de51a029d4378f65</anchor>
      <arglist>(struct osmo_tundev *tundev, struct msgb *msg)</arglist>
    </member>
  </compound>
  <compound kind="page">
    <name>index</name>
    <title>libosmocore Documentation</title>
    <filename>index.html</filename>
    <docanchor file="index.html" title="Introduction">sec_intro</docanchor>
    <docanchor file="index.html" title="Copyright and License">sec_copyright</docanchor>
    <docanchor file="index.html" title="Homepage + Issue Tracker">sec_tracker</docanchor>
    <docanchor file="index.html" title="Contact and Support">sec_contact</docanchor>
  </compound>
</tagfile>
