]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/fdset.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
10 typedef struct FDSet FDSet
;
12 FDSet
* fdset_new(void);
13 FDSet
* fdset_free(FDSet
*s
);
15 int fdset_put(FDSet
*s
, int fd
);
16 int fdset_put_dup(FDSet
*s
, int fd
);
18 bool fdset_contains(FDSet
*s
, int fd
);
19 int fdset_remove(FDSet
*s
, int fd
);
21 int fdset_new_array(FDSet
**ret
, const int *fds
, size_t n_fds
);
22 int fdset_new_fill(FDSet
**ret
);
23 int fdset_new_listen_fds(FDSet
**ret
, bool unset
);
25 int fdset_cloexec(FDSet
*fds
, bool b
);
27 int fdset_close_others(FDSet
*fds
);
29 unsigned fdset_size(FDSet
*fds
);
30 bool fdset_isempty(FDSet
*fds
);
32 int fdset_iterate(FDSet
*s
, Iterator
*i
);
34 int fdset_steal_first(FDSet
*fds
);
36 #define FDSET_FOREACH(fd, fds, i) \
37 for ((i) = ITERATOR_FIRST, (fd) = fdset_iterate((fds), &(i)); (fd) >= 0; (fd) = fdset_iterate((fds), &(i)))
39 DEFINE_TRIVIAL_CLEANUP_FUNC(FDSet
*, fdset_free
);
40 #define _cleanup_fdset_free_ _cleanup_(fdset_freep)