History log of /openbmc/pldm/meson.build (Results 1 – 25 of 100)
Revision Date Author Comments
# dd1f28b8 11-Mar-2025 Manojkiran Eda <manojkiran.eda@gmail.com>

Move dbus_to_terminus_effecter code to platform-mc

In the current state , pldm build breaks when attempting to perform
a debug-optimized build (`-O2` optimization), leading to the following
linker e

Move dbus_to_terminus_effecter code to platform-mc

In the current state , pldm build breaks when attempting to perform
a debug-optimized build (`-O2` optimization), leading to the following
linker error:

```
undefined reference to `pldm::platform_mc::TerminusManager::getActiveEidByName
(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
```

This issue is not encountered in the CI environment, as CI uses the
`-Og` optimization flag, which does not aggressively inline functions.
Consequently, the reference to `getActiveEidByName()` is resolved
without issue. However, when building the project with default
optimizations (debugoptimized [-O2]), the build fails because the
linker cannot resolve the reference to `getActiveEidByName()`, which is
inlined by the compiler.

To address this problem, there are three potential solutions:

1. Prevent Inlining of the Function:
We could use `__attribute__((noinline))` to prevent the compiler
from inlining `getActiveEidByName()`.

2. Move Source Files into `libpldmresponder`:
We could move the `platform-mc/manager.cpp` and
`platform-mc/terminus_manager.cpp` files into the `libpldmresponder`
so the compiler can resolve the reference directly within the
library.

3. Migrate `dbus_to_terminus_effecter.cpp` to the `platform-mc` folder:

The most appropriate solution appears to be migrating the
`dbus_to_terminus_effecter.cpp` file into the `platform-mc` directory.
This file is not inherently tied to `libpldmresponder` but functions as
a requester. Additionally, there are existing community patches that
allow the system to scale from a single host terminus to multiple
terminii, further justifying this move. So, solution #3 is the most
fitting at this stage. By relocating the `dbus_to_terminus_effecter`
code to the `platform-mc` folder, we can ensure proper modularity,
while also resolving the build issue in a clean and scalable manner.

Tested By:
1. meson build -Doptimization=2 works fine with the patchset.

Change-Id: I0ac8be58253bfb0394500f1d34e8431c6103c924
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 9b402600 01-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

meson: reformat with meson formatter

Apply the `meson format` results.

Change-Id: I6134375ee95612959195169ded2d3064eaed9cab
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>


# dc8b0829 30-Jan-2025 Patrick Williams <patrick@stwcx.xyz>

build: use allowed over enabled or not-disabled

Meson feature options are typically in a tri-state of enabled, disabled,
or auto. The enabled and disabled functions on an option (from
`get_option`)

build: use allowed over enabled or not-disabled

Meson feature options are typically in a tri-state of enabled, disabled,
or auto. The enabled and disabled functions on an option (from
`get_option`) no longer return true for auto features. Instead, the
expectation is to use `allowed()` which is true for both enabled and
auto.

Switch all uses of `enabled` to `allowed`.
Switch all uses of `not disabled` to `allowed`.

Change-Id: I0c1bf5bea775562681d09e61ad7358eeb4de5c80
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# b6d3943d 04-Jun-2024 Dung Cao <dung@os.amperecomputing.com>

platform-mc: discovery FRU data from terminus

As [1], `pldmd` will host Fru D-Bus inventory object path and Fru
`xyz.openbmc_project.Inventory.Decorator.*` D-Bus interfaces of one PLDM
terminus.
[1]

platform-mc: discovery FRU data from terminus

As [1], `pldmd` will host Fru D-Bus inventory object path and Fru
`xyz.openbmc_project.Inventory.Decorator.*` D-Bus interfaces of one PLDM
terminus.
[1] https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md#processing-pldm-fru-information-sent-down-by-the-host-firmware

Support getting FRU data from terminus in the terminus discovery phase
and expose FRU data to the Fru D-Bus properties in
`xyz.openbmc_project.Inventory.Decorator.Asset`,
`xyz.openbmc_project.Inventory.Decorator.AssetTag`,
`xyz.openbmc_project.Inventory.Decorator.Compatible` and
`xyz.openbmc_project.Inventory.Decorator.Revision` interfaces of
`xyz/openbmc_project/FruPldm/<Terminus_Name>` D-Bus object path which is
created by `xyz.openbmc_project.PLDM` D-Bus service. The object path
will be available until the endpoint EID is removed from the MCTP
D-Bus.

```
busctl introspect xyz.openbmc_project.PLDM /xyz/openbmc_project/inventory/system/board/S0
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Inventory.Decorator.Asset interface - - -
.BuildDate property s "" emits-change writable
.Manufacturer property s "" emits-change writable
.Model property s "00014003" emits-change writable
.PartNumber property s "" emits-change writable
.SerialNumber property s "000000218" emits-change writable
.SparePartNumber property s "" emits-change writable
.SubModel property s "" emits-change writable
xyz.openbmc_project.Inventory.Decorator.AssetTag interface - - -
.AssetTag property s "" emits-change writable
xyz.openbmc_project.Inventory.Decorator.Compatible interface - - -
.Names property as 0 emits-change writable
xyz.openbmc_project.Inventory.Decorator.Revision interface - - -
.Version property s "x.x.00008.004" emits-change writable
xyz.openbmc_project.Inventory.Item.Board interface - - -

```
Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I4f8869f8fee0fc0f8a5a5670d9a42fc7f48cc798

show more ...


# 72c8aa06 21-Nov-2023 Dung Cao <dung@os.amperecomputing.com>

oem-ampere: eventManager: Add CPER Event class handler

Add Ampere OEM CPER event handler to decode CPER data to get TypeID and
SubTypeID. Then logs those info to Ampere IPMI OEM sel logs.

Change-Id

oem-ampere: eventManager: Add CPER Event class handler

Add Ampere OEM CPER event handler to decode CPER data to get TypeID and
SubTypeID. Then logs those info to Ampere IPMI OEM sel logs.

Change-Id: I4ff1cd3c0ba8a2471afb1c8ee61a8caaf30596b8
Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>

show more ...


# a743e384 26-Oct-2024 Chau Ly <chaul@amperecomputing.com>

oem-ampere: eventManager: Handle `BootProgress` sensor event

Add Ampere OEM code to handle the `sensorEvent` for PLDM `BootProgress`
sensor. In Ampere system, the SOC termini will have the TID 1 or

oem-ampere: eventManager: Handle `BootProgress` sensor event

Add Ampere OEM code to handle the `sensorEvent` for PLDM `BootProgress`
sensor. In Ampere system, the SOC termini will have the TID 1 or 2. The
Ampere OEM EventManager will check the terminus TID to confirm about the
terminus type. Base on the value of `BootProgress` sensor, the OEM code
will add the Redfish Log to report the boot progress of Ampere SoC.

Tested:
1. Power on the host.
2. Check the Redfish SEL log.

Signed-off-by: Chau Ly <chaul@amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Icc51537ef17ee8eb4b5b571eafeea7b5d7763cbe

show more ...


# 77e6fe7a 06-Aug-2024 Gilbert Chen <gilbertc@nvidia.com>

platform-mc: Added EventManager

Added eventManager to handle sensor event class(00h) which is defined in
table 11 of DSP0248 v1.3.0. In this commit, the eventManager supports to
receive event asynch

platform-mc: Added EventManager

Added eventManager to handle sensor event class(00h) which is defined in
table 11 of DSP0248 v1.3.0. In this commit, the eventManager supports to
receive event asynchronously. The commit will also log the Ipmitool SEL
log and Redfish log for PLDM sensor event messages.

Change-Id: I1b337ccae454067841ffbbd8754631216a995542
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>

show more ...


# 0ff3435d 22-Aug-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Mark pldm as a c++ project

pldm is not a [c++, c] project anymore, it was initially marked as a
c project as well , because of the libpldm component. Now that we have
the libpldm moved out of pldm i

Mark pldm as a c++ project

pldm is not a [c++, c] project anymore, it was initially marked as a
c project as well , because of the libpldm component. Now that we have
the libpldm moved out of pldm into its own repository, we can safely
mark the pldm repo as a c++ project.

Change-Id: Id5a11faf8c3f69bfd837bdfd2fc92c5322bbe1bb
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 3012b632 22-Aug-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Format meson files with meson.format

Meson 1.5.0 introduced a new feature to format all the meson
files. Formatting all the meson files is now as simple as running
`meson format -i -r` command in th

Format meson files with meson.format

Meson 1.5.0 introduced a new feature to format all the meson
files. Formatting all the meson files is now as simple as running
`meson format -i -r` command in the repository root folder.

more details : https://mesonbuild.com/Commands.html#format

Change-Id: I9c5468cc502ae78b7a055e2de2a10296930cb9ec
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# eac61a4b 23-Feb-2022 Gilbert Chen <gilbert.chen@arm.com>

platform-mc: Add sensor manager

Added sensor_manager class. The sensor_manager class manages the timing
of sensor polling.

tested: Verified on ast2600 EVB which is connected to a PLDM device
over I

platform-mc: Add sensor manager

Added sensor_manager class. The sensor_manager class manages the timing
of sensor polling.

tested: Verified on ast2600 EVB which is connected to a PLDM device
over I2C. bmcweb can display the state of numeric sensor.

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I4257f823ea26d7fdb322cc82d847e94db056258c

show more ...


# 3c5486d4 01-Aug-2024 Thu Nguyen <thu@os.amperecomputing.com>

platform-mc: Create Numeric sensor D-Bus object

Added numeric_sensor class. The NumericSensor class will create the
Numeric sensor D-Bus object. The class also handles sensor status and
exports its

platform-mc: Create Numeric sensor D-Bus object

Added numeric_sensor class. The NumericSensor class will create the
Numeric sensor D-Bus object. The class also handles sensor status and
exports its status to D-Bus interfaces.

tested: Verified on ast2600 EVB which is connected to a PLDM device
over I2C. bmcweb can display the state of numeric sensor.

Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: I1c7de2e74100ed787ed2119896d3c5b36098dd96

show more ...


# f106a2c8 25-Jul-2024 Andrew Jeffery <andrew@codeconstruct.com.au>

fw-update: Break circular dependency

```
In file included from ../pldmd/pldmd.cpp:2:
In file included from ../common/flight_recorder.hpp:3:
In file included from ../common/utils.hpp:15:
In file incl

fw-update: Break circular dependency

```
In file included from ../pldmd/pldmd.cpp:2:
In file included from ../common/flight_recorder.hpp:3:
In file included from ../common/utils.hpp:15:
In file included from ../subprojects/nlohmann_json/single_include/nlohmann/json.hpp:29:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/memory:78:
/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:91:16: error: invalid application of 'sizeof' to an incomplete type 'pldm::fw_update::Activation'
91 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<pldm::fw_update::Activation>::opera
tor()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
../fw-update/update_manager.hpp:46:14: note: in instantiation of member function 'std::unique_ptr<pldm::fw_update::Activation>::~unique_ptr' requested here
46 | explicit UpdateManager(
| ^
../fw-update/update_manager.hpp:33:7: note: forward declaration of 'pldm::fw_update::Activation'
33 | class Activation;
| ^
In file included from ../pldmd/pldmd.cpp:2:
In file included from ../common/flight_recorder.hpp:3:
In file included from ../common/utils.hpp:15:
In file included from ../subprojects/nlohmann_json/single_include/nlohmann/json.hpp:29:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/memory:78:
/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:91:16: error: invalid application of 'sizeof' to an incomplete type 'pldm::fw_update::ActivationProgress'
91 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:398:4: note: in instantiation of member function 'std::default_delete<pldm::fw_update::ActivationProgress
>::operator()' requested here
398 | get_deleter()(std::move(__ptr));
| ^
../fw-update/update_manager.hpp:46:14: note: in instantiation of member function 'std::unique_ptr<pldm::fw_update::ActivationProgress>::~unique_ptr' requested here
46 | explicit UpdateManager(
| ^
../fw-update/update_manager.hpp:34:7: note: forward declaration of 'pldm::fw_update::ActivationProgress'
34 | class ActivationProgress;
| ^
```

Change-Id: I2820cbe134d1f37a43e6a5056eed87dde6e63b08
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>

show more ...


# 6c7fed4c 22-Feb-2022 Gilbert Chen <gilbert.chen@arm.com>

platform-mc: Added Terminus/TerminusManager class

Added requester::sendRecvPldmMsg awaiter type to be able to send and
receive PLDM message by coroutine.
Added TerminusManager to discover terminus f

platform-mc: Added Terminus/TerminusManager class

Added requester::sendRecvPldmMsg awaiter type to be able to send and
receive PLDM message by coroutine.
Added TerminusManager to discover terminus from EID list updated by
MCTPDiscovery class. The TerminusManager will initialize TID.

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Ifa5bdfff50648f1d7fba8710e160de662e8f9e06

show more ...


# 516122e0 07-May-2024 Kamalkumar Patel <kamalkumar.patel@ibm.com>

Add Json Config support for entity to DBus string

The entity map comprises both entity types and their corresponding
names, essential for generating unique D-Bus paths for each entity.
However, chal

Add Json Config support for entity to DBus string

The entity map comprises both entity types and their corresponding
names, essential for generating unique D-Bus paths for each entity.
However, challenges arise due to variations in path generation across
companies, often dictated by differing entity types. To address this,
enabling configurability of EntityID becomes imperative, empowering
communities to tailor configurations to their specific use cases.

Testing:
Unit tests passed

Change-Id: I3981fde64bd00940caa5067a9472fd948e74cbf0
Signed-off-by: Kamalkumar Patel <kamalkumar.patel@ibm.com>

show more ...


# ace4e14d 24-Apr-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Deprecate the support for x86 sdk

OpenBMC as a project has moved away from using yocto x86 sdks for unit
testing. Instead now the preferred way to build and test code is by two
ways:

1. Leveraging

Deprecate the support for x86 sdk

OpenBMC as a project has moved away from using yocto x86 sdks for unit
testing. Instead now the preferred way to build and test code is by two
ways:

1. Leveraging the meson subproject support
2. Using openbmc docker container

Since x86 sdks needed some weird hacks in the code base like figuring
out the linker arguments ourselves & running custom bash commands from
the meson build files. Also with changing yocto code base, its a large
maintainer burden to make sure this support works.

Tested:
Code builds & unit tests are passed with both the approaches mentioned
above.

Change-Id: Iaf55e2c003ffd9ee1a295de5bdfd14d81222e94b
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 46f352ed 17-Mar-2024 Archana Kakani <archana.kakani@ibm.com>

pldm: Meson option for system specific bios attributes

PLDM users who want to use bios attributes based on the system type
can enable this meson option.
With disabled option default bios json files

pldm: Meson option for system specific bios attributes

PLDM users who want to use bios attributes based on the system type
can enable this meson option.
With disabled option default bios json files are picked to build
bios attribute tables.

Added meson option "system-specific-bios-json" to add the support
for system specific bios attributes.
Below is the pre-requisite to support system specific bios
attributes:
1. Entity Manager service is active
2. Entity Manager should have Decorator.Compatible interface
and system type in Names property under this interface
3. BIOS Attribute json files are added into the folder(Named on
the System Type property value) and should be installed
under /usr/share/pldm/bios/

With disabled "system-specific-bios-json" option default bios
attributes are populated.

Tested:
Poweron system-specific-bios-json enabled/disabled

Change-Id: I95a953cdb12c344d22f487b83040356a1b5fa937
Signed-off-by: Archana Kakani <archana.kakani@ibm.com>

show more ...


# 4d99c311 28-Mar-2024 Sagar Srinivas <sagar.srinivas@ibm.com>

Softoff: Add config support for PDR entities

This commit introduces a config file for the soft power off
app. The config file specifies the order of remote PDRs to
be checked during the soft power o

Softoff: Add config support for PDR entities

This commit introduces a config file for the soft power off
app. The config file specifies the order of remote PDRs to
be checked during the soft power off process.

Previously, the entity type was hardcoded in the codebase,
limiting scalability. With this change, the softoff app gains
flexibility for future expansions.

TESTED: By running 'obmcutil poweroff' with various remote
entities during boot-up.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: Ib8d2aba6a05fc4e9da4b042fd67890e6282ed784

show more ...


# cfefc15d 07-Feb-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

fix usage of broken feature in meson.build file

It seems that we are trying to convert file objects to strings which is
considered as a misfeature since it does not work reliably.

This is the warni

fix usage of broken feature in meson.build file

It seems that we are trying to convert file objects to strings which is
considered as a misfeature since it does not work reliably.

This is the warning that is seen while building pldm:

``` WARNING: Broken features used:
* 1.3.0: {'str.format: Value other than strings, integers, bools, options,
dictionaries and lists thereof.'}
```

Tested:

Rebuild pldm repository with the fix and it builds pldm without the
mentioned warning above.

Change-Id: If8fedf488d33de6dccc2c1b45c2bfe124fbc3384
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 4668f5c8 14-Jan-2024 Andrew Jeffery <andrew@codeconstruct.com.au>

pldm: Use system include directives for libpldm

libpldm is no-longer a subproject, so let's stop treating it like it is
one by default.

Fixed with:

```
$ sed -Ei 's/#include "libpldm\/([^"]+).h"/#

pldm: Use system include directives for libpldm

libpldm is no-longer a subproject, so let's stop treating it like it is
one by default.

Fixed with:

```
$ sed -Ei 's/#include "libpldm\/([^"]+).h"/#include <libpldm\/\1.h>/' $(git grep -lF '"libpldm/')
```

Change-Id: I9be54661dcee1bdf2575aece8ff250424b4b7b56
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>

show more ...


# 0a4ae8a8 02-Jan-2024 Patrick Williams <patrick@stwcx.xyz>

meson: simplify add_project_arguments for OEM_IBM

Set it in one line for both C and C++.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I40cba5500a92b66ec0fe1dea935a5ce5da0a3a38


# cf772846 07-Dec-2023 Patrick Williams <patrick@stwcx.xyz>

meson: adjust nlohmann-json dependency

Simplify the meson dependency for nlohmann-json, use the consistent
dependency name, and align the wrap file name with other repositories.

Signed-off-by: Patr

meson: adjust nlohmann-json dependency

Simplify the meson dependency for nlohmann-json, use the consistent
dependency name, and align the wrap file name with other repositories.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I3a682a3e07e38d0a1bfe35858e24f1bb74b4ec34

show more ...


# 87bfacd2 29-Nov-2023 Patrick Williams <patrick@stwcx.xyz>

build: use allowed over enabled

Meson feature options are typically in a tri-state of enabled, disabled,
or auto. The enabled and disabled functions on an option (from
`get_option`) no longer retur

build: use allowed over enabled

Meson feature options are typically in a tri-state of enabled, disabled,
or auto. The enabled and disabled functions on an option (from
`get_option`) no longer return true for auto features. Instead, the
expectation is to use `allowed()` which is true for both enabled and auto.

Switch all uses of `enabled` to `allowed`.

Change-Id: I794c658531483266bfce6f9b28127a166ed01490
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 1ed5f7a6 21-May-2023 Rashmica Gupta <rashmica@linux.ibm.com>

pldm: Convert to using libpldm transport APIs

A significant amount of logic can be removed by exploiting the new
transport APIs provided by libpldm. Switch the pldm repository over to
use these by i

pldm: Convert to using libpldm transport APIs

A significant amount of logic can be removed by exploiting the new
transport APIs provided by libpldm. Switch the pldm repository over to
use these by introducing an RAII wrapper for the APIs. The current
stance is to continue using the legacy mctp-demux transport
implementation, but we also provide a build option to switch to the
AF_MCTP transport.

We don't currently have the infrastructure in place to get the correct
TIDs, so to keep everything working as before use the EID as the TID in
the EID-to-TID mapping.

Change-Id: I366f079082b102cfc0e90db0f62208581eb8693e
Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com>
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>

show more ...


# fc81a437 26-Jul-2023 Manojkiran Eda <manojkiran.eda@gmail.com>

use fs.copyfile instead of deprecated copy

copy arg in configure_file API is deprecated since meson
version 0.64.0. As we moved to meson version 1.1.1 we can
leverage the filesystem module copyfile(

use fs.copyfile instead of deprecated copy

copy arg in configure_file API is deprecated since meson
version 0.64.0. As we moved to meson version 1.1.1 we can
leverage the filesystem module copyfile() to achive the
same result.

Change-Id: I8ec540a505060306ff643a153cb2ca1b1ca4d35e
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# cdbb9e27 13-Jul-2023 Patrick Williams <patrick@stwcx.xyz>

use std::move_only_function

Since enabling C++23, we can eliminate the need for `function2` and
instead leverage `std::move_only_function`.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Chang

use std::move_only_function

Since enabling C++23, we can eliminate the need for `function2` and
instead leverage `std::move_only_function`.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iafc70c918e38b429e586bf18f71a716bdede43f8

show more ...


1234