---
name: "midl.h"
section: "3"
platform: "linux"
package: "lmdb-doc"
version: "0.9.31-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/midl.h"
---

# midl.h(3)

LMDB ID List header file.

## NAME

midl.h - LMDB ID List header file.

## SYNOPSIS

`#include <stddef.h>`\

### Data Structures

struct **MDB\_ID2**\

### Macros

\#define **MDB\_IDL\_LOGN**   16	/\* DB\_SIZE is 2^16, UM\_SIZE is 2^17 \*/\
 \#define **MDB\_IDL\_DB\_SIZE**   (1\<\<MDB\_IDL\_LOGN)\
 \#define **MDB\_IDL\_UM\_SIZE**   (1\<\<(MDB\_IDL\_LOGN+1))\
 \#define **MDB\_IDL\_DB\_MAX**   (MDB\_IDL\_DB\_SIZE-1)\
 \#define **MDB\_IDL\_UM\_MAX**   (MDB\_IDL\_UM\_SIZE-1)\
 \#define **MDB\_IDL\_SIZEOF**(ids)   (((ids)\[0\]+1) \* sizeof(**MDB\_ID**))\
 \#define **MDB\_IDL\_IS\_ZERO**(ids)   ( (ids)\[0\] == 0 )\
 \#define **MDB\_IDL\_CPY**(dst,  src)   (memcpy( dst, src, MDB\_IDL\_SIZEOF( src ) ))\
 \#define **MDB\_IDL\_FIRST**(ids)   ( (ids)\[1\] )\
 \#define **MDB\_IDL\_LAST**(ids)   ( (ids)\[(ids)\[0\]\] )\
 \#define **MDB\_IDL\_ALLOCLEN**(ids)   ( (ids)\[-1\] )\
 \#define **mdb\_midl\_xappend**(idl,  id)\

### Typedefs

typedef size\_t **MDB\_ID**\
 typedef **MDB\_ID** \* **MDB\_IDL**\
 typedef **MDB\_ID2** \* **MDB\_ID2L**\

### Functions

unsigned **mdb\_midl\_search** (**MDB\_IDL** ids, **MDB\_ID** id)\
 **MDB\_IDL** **mdb\_midl\_alloc** (int num)\
 void **mdb\_midl\_free** (**MDB\_IDL** ids)\
 void **mdb\_midl\_shrink** (**MDB\_IDL** \*idp)\
 int **mdb\_midl\_need** (**MDB\_IDL** \*idp, unsigned num)\
 int **mdb\_midl\_append** (**MDB\_IDL** \*idp, **MDB\_ID** id)\
 int **mdb\_midl\_append\_list** (**MDB\_IDL** \*idp, **MDB\_IDL** app)\
 int **mdb\_midl\_append\_range** (**MDB\_IDL** \*idp, **MDB\_ID** id, unsigned n)\
 void **mdb\_midl\_xmerge** (**MDB\_IDL** idl, **MDB\_IDL** merge)\
 void **mdb\_midl\_sort** (**MDB\_IDL** ids)\
 unsigned **mdb\_mid2l\_search** (**MDB\_ID2L** ids, **MDB\_ID** id)\
 int **mdb\_mid2l\_insert** (**MDB\_ID2L** ids, **MDB\_ID2** \*id)\
 int **mdb\_mid2l\_append** (**MDB\_ID2L** ids, **MDB\_ID2** \*id)\

## Detailed Description

LMDB ID List header file.

This file was originally part of back-bdb but has been modified for use in libmdb. Most of the macros defined in this file are unused, just left over from the original.

This file is only used internally in libmdb and its definitions are not exposed publicly.

## Author

Generated automatically by Doxygen for LMDB from the source code.
