aboutsummaryrefslogtreecommitdiffstats
path: root/gl/lib/di-set.h
blob: f90d0ddc7902bc5d6297bff8655b127d6ea5f881 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "dev-map.h"

struct di_set_state
{
  /* A map to help compact device numbers.  */
  struct dev_map dev_map;

  /* A set of compact dev,inode pairs.  */
  struct hash_table *di_set;
};

#undef _ATTRIBUTE_NONNULL_
#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || 3 < __GNUC__
# define _ATTRIBUTE_NONNULL_(m,...) __attribute__ ((__nonnull__ (m)))
#else
# define _ATTRIBUTE_NONNULL_(m,...)
#endif

int di_set_init (struct di_set_state *, size_t) _ATTRIBUTE_NONNULL_ (1);
void di_set_free (struct di_set_state *) _ATTRIBUTE_NONNULL_ (1);
int di_set_insert (struct di_set_state *, dev_t, ino_t)
  _ATTRIBUTE_NONNULL_ (1);

struct di_ent;
int di_ent_create (struct di_set_state *di_set_state,
                   dev_t dev, ino_t ino,
                   struct di_ent **di_ent)
  _ATTRIBUTE_NONNULL_ (1,4);