#
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 ...
|