[make-initrd] [PATCH 1/3] Reimplement ueventd

Leonid Krivoshein klark.devel at gmail.com
Sun May 14 23:12:22 MSK 2023


Привет!


On 5/4/23 16:42, Alexey Gladkov wrote:
> [...]
> diff --git a/datasrc/ueventd/ueventd.h b/datasrc/ueventd/ueventd.h
> new file mode 100644
> index 00000000..a5e50379
> --- /dev/null
> +++ b/datasrc/ueventd/ueventd.h

К этому заголовочному файлу возникла пара вопросов.

> @@ -0,0 +1,76 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#ifndef __UEVENTD_H__
> +#define __UEVENTD_H__
> +
> +#include <sys/types.h>
> +#include <stdint.h>
> +
> [...]
> +
> +/* path.c */
> +#include <dirent.h>
> +
> [...]
> +
> +/* process.c */
> +extern pid_t waitpid_retry(pid_t pid, int *wstatus, int options);
> +
> +#include <dirent.h>

1) Что <dirent.h> повторяется дважды, конечно не проблема. Но вообще это 
необычно выглядит, когда заголовочные файлы упоминаются в чередовании с 
остальным кодом. Обычно они все выносятся наверх, потому и заголовочные. 
Такой подход убережёт от понимания ошибок компилятора при появлении в 
дальнейшем конфликтов в именах между твоим и библиотечным кодом.


> +
> +extern  int is_dot_dir(struct dirent *ent) __attribute__((nonnull(1)));
> +
> +/* logging.c */
> +#include <unistd.h>
> +#include <syslog.h>
> +#include <stdlib.h>
> +
> [...]
> +
> +#endif /* __UEVENTD_H__ */

2) Понятно, что код чисто Си-шный и никому пока "снаружи" (ueventd) не 
требуется. Просто, опять же, привычно видеть тут совместимость с 
"плюсовой обёрткой". Возможно, так задумано, чтобы слинковаться с твоим 
кодом можно было только для Си-шных программ.


-- 
WBR, Leonid Krivoshein.


More information about the Make-initrd mailing list