Re: Syntax of files.* configuration

Valery Ushakov <[email protected]>
Newsgroups gmane.os.netbsd.ports.arm
Message-ID <[email protected]>
On Sat, Jun 21, 2025 at 12:08:50 +0000, Vincent DEFERT wrote:

> Is there any documentation explaining this syntax?

Have you checked config(5)?  It's a bit terse, but it should answer
all of your questions, I think.

> - what the optional 'with meson_uart' means
> - where and how the 'meson_uart' boolean is set

  | Different attach definitions must use different names using
  | the with option.  It is then possible to use the associated
  | name as a conditional element in a file statement.


> - whether there is a relationship between the names in those configuration
> files and the first argument of the CFATTACH_DECL_NEW macro

Yes, config(1) creates (among other things) the ioconf.c file for the
kernel, and "attach" directives

  attach base at attr[, attr[, ...]] [with name] [: dependencies]

emit references to struct cfattach named either ${name}_ca, or
${base}_ca if there's no "with" clause.

When you implement the attachment, you provide the struct cfattach
definition with one of the CFATTACH_DECL* macros (that adds the "_ca"
suffix to its first argument).

So for

  attach foo at bar

define CFATTACH_DECL*(foo, ...) - probably in what is your only driver
file, foo.c that has both the driver and its only attachment.

And for

  attach foo at bar with foo_bar

define CFATTACH_DECL*(foo_bar, ...) in the file with that specific
attachment, probably named dev/bar/foo_bar.c (or something similar
under arch).  The bar attachment glue is typically included into the
kernel with

  file dev/bar/foo_bar.c foo_bar

in dev/bar/file.bar where the conditional guard makes sure that file
is used only when there's actually foo* at bar? attachment in your
kernel config.


-uwe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.