Coverage Report

Created: 2025-06-13 06:25

/src/systemd/src/basic/lock-util.h
Line
Count
Source (jump to first uncovered line)
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2
#pragma once
3
4
/* Include here so consumers have LOCK_{EX,SH,NB} available. */
5
#include <sys/file.h> /* IWYU pragma: export */
6
7
#include "forward.h"
8
9
typedef struct LockFile {
10
        int dir_fd;
11
        char *path;
12
        int fd;
13
        int operation;
14
} LockFile;
15
16
int make_lock_file_at(int dir_fd, const char *p, int operation, LockFile *ret);
17
0
static inline int make_lock_file(const char *p, int operation, LockFile *ret) {
18
0
        return make_lock_file_at(AT_FDCWD, p, operation, ret);
19
0
}
Unexecuted instantiation: udev-manager.c:make_lock_file
Unexecuted instantiation: udev-node.c:make_lock_file
Unexecuted instantiation: udev-rules.c:make_lock_file
Unexecuted instantiation: udev-watch.c:make_lock_file
20
int make_lock_file_for(const char *p, int operation, LockFile *ret);
21
void release_lock_file(LockFile *f);
22
23
0
#define LOCK_FILE_INIT (LockFile) { .dir_fd = -EBADF, .fd = -EBADF }
24
25
/* POSIX locks with the same interface as flock(). */
26
int posix_lock(int fd, int operation);
27
void posix_unlockpp(int **fd);
28
29
#define CLEANUP_POSIX_UNLOCK(fd)                                   \
30
        _cleanup_(posix_unlockpp) _unused_ int *CONCATENATE(_cleanup_posix_unlock_, UNIQ) = &(fd)
31
32
/* Open File Description locks with the same interface as flock(). */
33
int unposix_lock(int fd, int operation);
34
void unposix_unlockpp(int **fd);
35
36
#define CLEANUP_UNPOSIX_UNLOCK(fd)                                   \
37
        _cleanup_(unposix_unlockpp) _unused_ int *CONCATENATE(_cleanup_unposix_unlock_, UNIQ) = &(fd)
38
39
typedef enum LockType {
40
        LOCK_NONE, /* Don't lock the file descriptor. Useful if you need to conditionally lock a file. */
41
        LOCK_BSD,
42
        LOCK_POSIX,
43
        LOCK_UNPOSIX,
44
} LockType;
45
46
int lock_generic(int fd, LockType type, int operation);
47
48
int lock_generic_with_timeout(int fd, LockType type, int operation, usec_t timeout);