Page MenuHomeFreeBSD

ddb: Rework macros to make it easier to add new command tables.
ClosedPublic

Authored by jhb on Jun 30 2023, 10:46 PM.
Tags
None
Referenced Files
Unknown Object (File)
Oct 11 2024, 2:20 AM
Unknown Object (File)
Oct 3 2024, 7:05 PM
Unknown Object (File)
Oct 2 2024, 11:30 PM
Unknown Object (File)
Oct 2 2024, 8:22 PM
Unknown Object (File)
Sep 27 2024, 6:42 PM
Unknown Object (File)
Sep 27 2024, 1:55 PM
Unknown Object (File)
Sep 27 2024, 12:05 AM
Unknown Object (File)
Sep 26 2024, 4:16 PM

Details

Summary
  • Add new DB_DEFINE_TABLE and DB_DECLARE_TABLE macros to define new command tables. DB_DECLARE_TABLE is intended for use in headers similar to MALLOC_DECLARE and SYSCTL_DECL.

    DB_DEFINE_TABLE takes three arguments, the name of the parent table, the command name, and the name of the table itself, e.g. DB_DEFINE_TABLE(show, foo, show_foo) defines a new "show foo" table.
  • DB_TABLE_COMMAND, DB_TABLE_COMMAND_FLAGS, DB_TABLE_ALIAS, and DB_ALIAS_FLAGS allow new commands and aliases to be defined. These are similar to the existing DB_COMMAND, etc. except that they take an initial argument giving the name of the parent table, e.g.:

    DB_TABLE_COMMAND(show_foo, bar, db_show_foo_bar)

    defines a new "show foo bar" command.

This provides a cleaner interface than the ad-hoc use of internal
macros like _DB_SET that was required previously (e.g. in cxgbe(4)).

This retires DB_FUNC macro as well as the internal _DB_FUNC macro.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 52371
Build 49262: arc lint + arc unit