From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 14 May 2023 22:45:15 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: References: <6b444ed922286eb3df8f5322b1bddf9c55753eb8.1683200226.git.gladkov.alexey@gmail.com> <2715d1d6-30f5-f472-f963-9c2a57c155b4@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2715d1d6-30f5-f472-f963-9c2a57c155b4@gmail.com> Subject: Re: [make-initrd] [PATCH 1/3] Reimplement ueventd X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 May 2023 20:45:17 -0000 Archived-At: List-Archive: On Sun, May 14, 2023 at 11:12:22PM +0300, Leonid Krivoshein wrote: > Привет! > > > 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 > > +#include > > + > > [...] > > + > > +/* path.c */ > > +#include > > + > > [...] > > + > > +/* process.c */ > > +extern pid_t waitpid_retry(pid_t pid, int *wstatus, int options); > > + > > +#include > > 1) Что повторяется дважды, конечно не проблема. Но вообще это > необычно выглядит, когда заголовочные файлы упоминаются в чередовании с > остальным кодом. Обычно они все выносятся наверх, потому и заголовочные. > Такой подход убережёт от понимания ошибок компилятора при появлении в > дальнейшем конфликтов в именах между твоим и библиотечным кодом. Я так делаю чисто для удобства чтобы понимать, что include не нужен определениям выше. Когда портянка include собрана сверху, то не всегда ясно для чего include добавлен. Но для меня это совершенно не критично. > > > + > > +extern int is_dot_dir(struct dirent *ent) __attribute__((nonnull(1))); > > + > > +/* logging.c */ > > +#include > > +#include > > +#include > > + > > [...] > > + > > +#endif /* __UEVENTD_H__ */ > > 2) Понятно, что код чисто Си-шный и никому пока "снаружи" (ueventd) не > требуется. Просто, опять же, привычно видеть тут совместимость с > "плюсовой обёрткой". Возможно, так задумано, чтобы слинковаться с твоим > кодом можно было только для Си-шных программ. В make-initrd у меня нет ни одной программы на с++ и я на нём не пишу. Когда будет хоть один запрос на использование с++ и когда пользователь сможет это обосновать, то обязательно добавлю всё необходимое. -- Rgrds, legion