Skip to content

Commit 27df50a

Browse files
committed
cleanup: move POSIX API cleanup helpers into a separate file
The main cleanup header file should only include generic headers to simplify porting. Signed-off-by: Daniel Wagner <[email protected]>
1 parent 1330efb commit 27df50a

7 files changed

Lines changed: 33 additions & 18 deletions

File tree

libnvme/src/nvme/cleanup-linux.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// SPDX-License-Identifier: LGPL-2.1-or-later
2+
/*
3+
* This file is part of libnvme.
4+
* Copyright (c) 2026 SUSE Software Solutions
5+
*
6+
* Authors: Daniel Wagner <[email protected]>
7+
*/
8+
9+
#pragma once
10+
11+
#include <dirent.h>
12+
#include <stdio.h>
13+
#include <unistd.h>
14+
15+
#include "cleanup.h"
16+
17+
static inline DEFINE_CLEANUP_FUNC(cleanup_file, FILE *, fclose)
18+
#define __cleanup_file __cleanup(cleanup_file)
19+
20+
static inline DEFINE_CLEANUP_FUNC(cleanup_dir, DIR *, closedir)
21+
#define __cleanup_dir __cleanup(cleanup_dir)
22+
23+
static inline void cleanup_fd(int *fd)
24+
{
25+
if (*fd >= 0)
26+
close(*fd);
27+
}
28+
#define __cleanup_fd __cleanup(cleanup_fd)

libnvme/src/nvme/cleanup.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@
22
#ifndef __CLEANUP_H
33
#define __CLEANUP_H
44

5-
#include <dirent.h>
6-
#include <stdio.h>
75
#include <stdlib.h>
8-
#include <unistd.h>
9-
10-
#include "fabrics.h"
116

127
#define __cleanup(fn) __attribute__((cleanup(fn)))
138

@@ -27,17 +22,4 @@ static inline void freep(void *p)
2722
}
2823
#define __cleanup_free __cleanup(freep)
2924

30-
static inline DEFINE_CLEANUP_FUNC(cleanup_file, FILE *, fclose)
31-
#define __cleanup_file __cleanup(cleanup_file)
32-
33-
static inline DEFINE_CLEANUP_FUNC(cleanup_dir, DIR *, closedir)
34-
#define __cleanup_dir __cleanup(cleanup_dir)
35-
36-
static inline void cleanup_fd(int *fd)
37-
{
38-
if (*fd >= 0)
39-
close(*fd);
40-
}
41-
#define __cleanup_fd __cleanup(cleanup_fd)
42-
4325
#endif

libnvme/src/nvme/fabrics.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include <libnvme.h>
3636

3737
#include "cleanup.h"
38+
#include "cleanup-linux.h"
3839
#include "private.h"
3940
#include "private-fabrics.h"
4041
#include "compiler-attributes.h"

libnvme/src/nvme/lib.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <libnvme.h>
1717

1818
#include "cleanup.h"
19+
#include "cleanup-linux.h"
1920
#include "private.h"
2021
#include "compiler-attributes.h"
2122

libnvme/src/nvme/linux.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
#include "crc32.h"
5151
#include "base64.h"
5252
#include "cleanup.h"
53+
#include "cleanup-linux.h"
5354
#include "private.h"
5455
#include "compiler-attributes.h"
5556

libnvme/src/nvme/tree.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <libnvme.h>
2929

3030
#include "cleanup.h"
31+
#include "cleanup-linux.h"
3132
#include "private.h"
3233
#include "util.h"
3334
#include "compiler-attributes.h"

libnvme/src/nvme/util.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <libnvme.h>
2929

3030
#include "cleanup.h"
31+
#include "cleanup-linux.h"
3132
#include "private.h"
3233
#include "util.h"
3334
#include "compiler-attributes.h"

0 commit comments

Comments
 (0)