History log of /openbmc/phosphor-virtual-sensor/virtualSensor.cpp (Results 1 – 25 of 64)
Revision Date Author Comments
# 06f8874f 24-Oct-2024 George Liu <liuxiwei@ieisystem.com>

Fix create sensor failure after process restart

When the virtual-sensor process is intentionally restarted, the
createVirtualSensors method will only create sensors with Type equal
to ModifiedMedian

Fix create sensor failure after process restart

When the virtual-sensor process is intentionally restarted, the
createVirtualSensors method will only create sensors with Type equal
to ModifiedMedian, so if other types of sensors (eg: Sum, Minimum,
Maximum, etc.) are configured in EM.json, they will not be loaded.

This commit will remove the `Type` and create the sensor by
traversing the calculationIfaces when parsing to 'Config: D-Bus'.

Change-Id: I4a22bd2eef26e745e770acb260616374b5aba89b
Signed-off-by: George Liu <liuxiwei@ieisystem.com>

show more ...


# d98174e9 25-Oct-2024 George Liu <liuxiwei@ieisystem.com>

Add the main.cpp file

Separate the main method from virtualSensor.cpp and add it to the
main.cpp file.

Change-Id: Ife3dd9bb6dee552d944399bcc769fc6c4ba54a4b
Signed-off-by: George Liu <liuxiwei@ieisy

Add the main.cpp file

Separate the main method from virtualSensor.cpp and add it to the
main.cpp file.

Change-Id: Ife3dd9bb6dee552d944399bcc769fc6c4ba54a4b
Signed-off-by: George Liu <liuxiwei@ieisystem.com>

show more ...


# 7f41a0d4 28-Aug-2024 George Liu <liuxiwei@ieisystem.com>

Refactor virtual sensor calculation logic

Refactor the calculation method to calculate.cpp and use std::map
instead of std::array, and other algorithms will be added to
calculate.cpp in the future.

Refactor virtual sensor calculation logic

Refactor the calculation method to calculate.cpp and use std::map
instead of std::array, and other algorithms will be added to
calculate.cpp in the future.

Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: I6dcf5119140a5acdf334ebb280dd0b458da1e3ea

show more ...


# a630f081 28-Aug-2024 George Liu <liuxiwei@ieisystem.com>

Remove DEBUG flag

Since lg2 already supports the debug log level and the log level can
be modified in journald-maxlevel-policy.conf [1], there is no need to
add the DEBUG flag in this repo.

[1]: ht

Remove DEBUG flag

Since lg2 already supports the debug log level and the log level can
be modified in journald-maxlevel-policy.conf [1], there is no need to
add the DEBUG flag in this repo.

[1]: https://github.com/openbmc/openbmc/blob/master/meta-phosphor/recipes-core/systemd/phosphor-systemd-policy/journald-maxlevel-policy.conf

Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: I8a4a0564707478b8f8fdbbd128a2e2f7908c2ce6

show more ...


# 150d5f6a 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

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

show more ...


# 9358f6bd 14-Mar-2024 Konstantin Aladyshev <aladyshev22@gmail.com>

Add fan_pwm to the possible sensors

Add fan PWM output to the list of supported sensor types.

Change-Id: Ia0c7970934fe403d4e6e0142af78b7815bcff0c9
Signed-off-by: Konstantin Aladyshev <aladyshev22@g

Add fan_pwm to the possible sensors

Add fan PWM output to the list of supported sensor types.

Change-Id: Ia0c7970934fe403d4e6e0142af78b7815bcff0c9
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>

show more ...


# f2e94221 31-Oct-2023 Tao Lin <lintao.lc@ieisystem.com>

UpdateVirtualSensor uses information from signals

UpdateVirtualSensor uses information obtained from signals to avoid
extensive dbus queries.

Tested:
1:Execute DBus cmd to see if VirtualSensor can

UpdateVirtualSensor uses information from signals

UpdateVirtualSensor uses information obtained from signals to avoid
extensive dbus queries.

Tested:
1:Execute DBus cmd to see if VirtualSensor can correctly obtain the
value of DbusSensor
busctl tree xyz.openbmc_project.VirtualSensor
busctl introspect xyz.openbmc_project.VirtualSensor xxx
2:Waiting for the value change of DbusSensor,Check if the value of
the virtual sensor has changed after the dbusSensor changes.

Fixes openbmc/phosphor-virtual-sensor#1

Change-Id: If11f9017b31ce5cf06f910a38c65637c55d74b24
Signed-off-by: Tao Lin <lintao.lc@ieisystem.com>

show more ...


# ae10c529 20-Oct-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

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

show more ...


# c77b6b3f 08-Jun-2023 Lei YU <yulei.sh@bytedance.com>

exprkt: Add ifNan to ignore the NaN value

Arithmetic with `nan` values is not expected in virtual sensor's case.

Adding a new exprkt function `ifNan` to handle this case, that if a
value is `nan`,

exprkt: Add ifNan to ignore the NaN value

Arithmetic with `nan` values is not expected in virtual sensor's case.

Adding a new exprkt function `ifNan` to handle this case, that if a
value is `nan`, then use the other value.

Example usage in json config:
```
"Expression": "ifNan(maxIgnoreNaN(T0, T1), T2)"
```

The above expression get max value of T0, T1 ignoring nan, and if it's
still nana, it uses the value T2.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: Ib323f6e18ef9f3317437753018857ad53732f54b

show more ...


# 87d35115 24-Oct-2022 Lei YU <yulei.sh@bytedance.com>

exprkt: Add sumIgnoreNaN to ignore the NaN value

Arithmetic with `nan` values is not expected in virtual sensor's case.

Adding a new exprkt function `sumIgnoreNaN` to handle this case,
that it igno

exprkt: Add sumIgnoreNaN to ignore the NaN value

Arithmetic with `nan` values is not expected in virtual sensor's case.

Adding a new exprkt function `sumIgnoreNaN` to handle this case,
that it ignores all `nan` values. If all values are `nan` then it
returns `nan`, otherwise it returns the sum of the valid values.

Example usage in json config:
```
"Expression": "sumIgnoreNaN(T0, T1, T2, T3)"
```

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: I0cbd87f038499b4ea3ab722c003adc795a11c2b3

show more ...


# 0ab9d838 19-Jul-2022 Lei YU <yulei.sh@bytedance.com>

exprkt: Add maxIgnoreNaN to ignore the NaN value

The max function in exprtk uses std::max() to get the max value.
Comparing a value with nan has special rule and is not expected in
virtual sensor's

exprkt: Add maxIgnoreNaN to ignore the NaN value

The max function in exprtk uses std::max() to get the max value.
Comparing a value with nan has special rule and is not expected in
virtual sensor's case. E.g. `max(nan, 1)` gives `nan`.

Adding a new exprkt function `maxIgnoreNaN` to handle the above case so
that it ignores all `nan` values. If all values are `nan` then it
returns `nan`, otherwise it returns the max value of the valid values.

Example usage in json config:
```
"Expression": "maxIgnoreNaN(T0, T1, T2, T3)"
```

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: Idd345cd2ce325e5a186b9816458ba3d3bc66a187

show more ...


# 2db8d41f 21-Aug-2023 George Liu <liuxiwei@inspur.com>

Optimize the createVirtualSensorsFromDBus method logic

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I56a7a229a8d5a6f414b2ba036627e4e7a8185bbd


# 94921490 21-Aug-2023 George Liu <liuxiwei@inspur.com>

hardcode dbus name

The busName variable is only used as the request_name parameter in
the main method, so there is no need to explicitly declare a static
variable.

Signed-off-by: George Liu <liuxiw

hardcode dbus name

The busName variable is only used as the request_name parameter in
the main method, so there is no need to explicitly declare a static
variable.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ice0ef649e6bb648707bd36687fafdeb095254e40

show more ...


# 1226f208 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

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

show more ...


# 32dff21b 09-Feb-2023 Patrick Williams <patrick@stwcx.xyz>

config-file: search multiple directories

Restricting the config file to `/usr/share` makes testing difficult
and prevents the config file from being present on a, typically for
the BMC, read-write v

config-file: search multiple directories

Restricting the config file to `/usr/share` makes testing difficult
and prevents the config file from being present on a, typically for
the BMC, read-write volume. Change the config loading code to search:

1. pwd
2. /var/lib/phosphor-virtual-sensor
3. /usr/share/phosphor-virtual-sensor

Tested:

Ran strace on the changes and observed the expected file search.
```
getcwd("pwd/phosphor-virtual-sensor/builddir", 4096) = 75
newfstatat(AT_FDCWD, "pwd/phosphor-virtual-sensor/builddir/virtual_sensor_config.json", 0x7fff60a0af90, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/var/lib/phosphor-virtual-sensor/virtual_sensor_config.json", 0x7fff60a0af90, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/share/phosphor-virtual-sensor/virtual_sensor_config.json", 0x7fff60a0af90, 0) = -1 ENOENT (No such file or directory)
```

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

show more ...


# a291ce1a 06-Feb-2023 Matt Spinler <spinler@us.ibm.com>

Fixes around persisting values in entity-manager

This fixes three problems that were causing "Faild to set dbus
property." error traces to show up.

1. In VirtualSensor::createThresholds() the setEn

Fixes around persisting values in entity-manager

This fixes three problems that were causing "Faild to set dbus
property." error traces to show up.

1. In VirtualSensor::createThresholds() the setEntityPath() and
setEntityInterfaceHigh/Low() calls have to be made on the threshold
objects before the critical/warning/High/Low() functions are called
so that the path and interface is known for the property set call.
Reorder the code so this is the case.

2. Saving the value in entity-manager only works when the virtual sensor
config was obtained from entity-manager D-Bus objects, and not when
it was obtained from virtual_sensor_config.json. In the latter case,
the 'entityPath' variable won't have a value, so check for that
before trying to set a property on entity-manager.

3. If either a 'high' or 'low' threshold property isn't set, then the
'entityInterfaceHigh/Low' variable will be empty. Also skip the
property write in that case.

Tested: No more error traces, and verified that changing a threshold
value on a virtual sensor is still reflected in entity-manager when its
config was from EM in the first place.

Change-Id: I67dc35fb4b8f4c1367231e22ddde91fbd1bb354d
Signed-off-by: Matt Spinler <spinler@us.ibm.com>

show more ...


# f6b7e0a4 08-Oct-2022 Tao Lin <lintao.lc@inspur.com>

Add func for Maximum when sensor from DBus

Add function to calculate the maximum value.

Tested:
in entity-manager/baseboard.json:
add virtual sensor use Type=Maximum:
```
{
"Exposes": [

Add func for Maximum when sensor from DBus

Add function to calculate the maximum value.

Tested:
in entity-manager/baseboard.json:
add virtual sensor use Type=Maximum:
```
{
"Exposes": [
{
"Name": "NVMe MAX Temp",
"Sensors": [
"NVMe 0 Temp",
"NVMe 1 Temp",
"NVMe 2 Temp",
"NVMe 3 Temp",
"NVMe 4 Temp"
],
"Thresholds": [
{
"Direction": "greater than",
"Name": "upper critical",
"Severity": 1,
"Value": 116
},
{
"Direction": "less than",
"Name": "lower critical",
"Severity": 1,
"Value": 1
}
],
"Type": "Maximum",
"Units": "DegreesC"
}
],
"Logging": "Off",
"Name": "NVMe MAX",
"Probe": "TRUE",
"Type": "NVMe",
"xyz.openbmc_project.Inventory.Item.Chassis": {}
}
```

in phosphor-virtual-sensor/virtual_sensor_config.json
```
{
"Desc": {
"Config": "D-Bus",
"Type": "Maximum"
}
}
```

root@NULL:~# busctl tree xyz.openbmc_project.VirtualSensor
`-/xyz
`-/xyz/openbmc_project
`-/xyz/openbmc_project/sensors/temperature
|-/xyz/openbmc_project/sensors/temperature/NVMe_MAX_Temp
root@NULL:~# ipmitool sensor list | grep -i NVMe
NVMe_MAX_Temp |70| degrees C |na| na|1.000|6.000|111.000|116.000|na
root@NULL:~#

Signed-off-by: Tao Lin <lintao.lc@inspur.com>
Change-Id: I620a0ee3c3cc4dbae6485c77fe4e47c62a04a804

show more ...


# 91799dbd 27-Jul-2022 Tao Lin <lintao.lc@inspur.com>

Update threshold to entity-manager

Save path&interface when creating thresholds,and then set DBUS value
corresponding to path&interface when setting thresholds;

I have a requirement to set the thre

Update threshold to entity-manager

Save path&interface when creating thresholds,and then set DBUS value
corresponding to path&interface when setting thresholds;

I have a requirement to set the threshold to restart without losing. In
addition, I can see that the threshold can be saved in the file in the
entity-manager, which can meet my requirements.

Data flow:
Old version: IPMI set threshold -> virtualsensors (DBUS) What
I want to achieve: IPMI set threshold -> virtualsensors (DBUS) ->
filesystem

I found that it can be implemented as follows: IPMI set
threshold -> virtual-sensors (DBUS) -> entitymanager -> filesystem

Because the threshold setting in dbus-sensors is: IPMI set threshold ->
dbus-sensors (DBUS) -> entitymanager -> filesystem

Tested:

The following print result shows this process:
IPMI set threshold -> virtual sensors (DBUS) -> entitymanager

root@NULL:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/NVMe_MAX_Temp xyz.openbmc_project.Configuration.ModifiedMedian.Thresholds0
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.Delete method - - -
.Direction property s "greater than" emits-change writable
.Name property s "upper critical" emits-change writable
.Severity property d 1 emits-change writable
.Value property d 116 emits-change writable
root@NULL:~# ipmitool sensor list | grep NVM
NVMe_MAX_Temp | na | degrees C | na | na | 1.000 | 6.000 | 111.000 | 116.000 | na
root@NULL:~# ipmitool sensor thresh NVMe_MAX_Temp ucr 119
Locating sensor record 'NVMe_MAX_Temp'...
Setting sensor "NVMe_MAX_Temp" Upper Critical threshold to 119.000
root@NULL:~# ipmitool sensor list | grep NVM
NVMe_MAX_Temp | na | degrees C | na | na | 1.000 | 6.000 | 111.000 | 119.000 | na
root@NULL:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/NVMe_MAX_Temp xyz.openbmc_project.Configuration.ModifiedMedian.Thresholds0
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.Delete method - - -
.Direction property s "greater than" emits-change writable
.Name property s "upper critical" emits-change writable
.Severity property d 1 emits-change writable
.Value property d 119 emits-change writable
root@NULL:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/NVMe_MAX_Temp xyz.openbmc_project.Configuration.ModifiedMedian.Thresholds0
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.Delete method - - -
.Direction property s "greater than" emits-change writable
.Name property s "upper critical" emits-change writable
.Severity property d 1 emits-change writable
.Value property d 119 emits-change writable
root@NULL:~#

Signed-off-by: Tao Lin <lintao.lc@inspur.com>
Change-Id: I0f5eeb06d0b3aaf4f5806bfa68672dedcb087f26

show more ...


# 71b9c116 18-Oct-2022 Matt Spinler <spinler@us.ibm.com>

Throw the exception on the EM D-Bus fail

Throw the exception that occurs when there is a D-Bus failure when
trying to talk to entity-manager instead of the name of the exception,
and also add a trac

Throw the exception on the EM D-Bus fail

Throw the exception that occurs when there is a D-Bus failure when
trying to talk to entity-manager instead of the name of the exception,
and also add a trace that says entity-manager is the culprit.

Nothing was actually printing the exception name on the crash, it would
just have: terminate called after throwing an instance of 'char const*'

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I91eb65468a9a799bcd7256aae24a1121164b59b9

show more ...


# f7ec40aa 04-Oct-2022 Ed Tanous <edtanous@google.com>

Move objectmanager into the PDI-specified location

PDI specifies that the ObjectManager for sensors should be hosted at the
sensor root. This commit makes that a reality.

Tested:
Could use some he

Move objectmanager into the PDI-specified location

PDI specifies that the ObjectManager for sensors should be hosted at the
sensor root. This commit makes that a reality.

Tested:
Could use some help here. I don't use phosphor-virtual-sensors, but
other similar changes made to other daemons have been tested, along with
the other patches in this topic.

[1] https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Sensor/Value.interface.yaml#L18

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I45cead6eaa841140dd88364131b94d628ccfdaa8

show more ...


# f6825b91 20-Sep-2022 Nan Zhou <nanzhoumails@gmail.com>

virtualSensor: change EM's ObjectManager path

EntityManager moves its ObjectManager in commit [1], this patch is to
change accordingly. Please see [1] for why we made that change.

[1] https://gerri

virtualSensor: change EM's ObjectManager path

EntityManager moves its ObjectManager in commit [1], this patch is to
change accordingly. Please see [1] for why we made that change.

[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/57279

Tested: code compiles. I don't have a system with this repo enabled.
But code inspection can show that only ObjectManager path changed.

Signed-off-by: Nan Zhou <nanzhoumails@gmail.com>
Change-Id: Ib5460433558d9d9d5e12465fe3d78a92159c573b

show more ...


# dc777015 27-Jul-2022 Tao Lin <lintao.lc@inspur.com>

Association not created when sensors from DBus

Save the path when create virtual sensors from DBus.
Main functions after saving:
* Set the threshold on the path corresponding to entity-manager
* Cre

Association not created when sensors from DBus

Save the path when create virtual sensors from DBus.
Main functions after saving:
* Set the threshold on the path corresponding to entity-manager
* Create an association

I found that the sensor created by reading virtual_sensor_config.json will create association.
However,the virtual sensor created from DBus has no association,
so I added this.
In this way, my web/redfish can display this virtual sensor.

```
root@NULL:~# busctl introspect xyz.openbmc_project.VirtualSensor /xyz/openbmc_project/sensors/temperature/NVMe_MAX_Temp xyz.openbmc_project.Association.Definitions
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.Associations property a(sss) 1 "chassis" "all_sensors" "/xyz/openbmc_project/inventory/system/nvme/NVMe_MAX" emits-change writable
```

The BMC web will find my all_sensor according to the following steps:

```
root@NULL:~# busctl call xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper GetSubTreePaths sias /xyz/openbmc_project/inventory 0 2 xyz.openbmc_project.Inventory.Item.Board xyz.openbmc_project.Inventory.Item.Chassis --verbose
MESSAGE "as" {
ARRAY "s" {
STRING "/xyz/openbmc_project/inventory/system/board/FP5280G2_Motherboard";
STRING "/xyz/openbmc_project/inventory/system/chassis";
STRING "/xyz/openbmc_project/inventory/system/nvme/NVMe_MAX";
};
};

root@NULL:~# busctl call xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/inventory/system/nvme/NVMe_MAX/all_sensors org.freedesktop.DBus.Properties Get ss xyz.openbmc_project.Association endpoints --verbose
MESSAGE "v" {
VARIANT "as" {
ARRAY "s" {
STRING "/xyz/openbmc_project/sensors/temperature/NVMe_MAX_Temp";
};
};
};
```

Signed-off-by: Tao Lin <lintao.lc@inspur.com>
Change-Id: I5ab8ce532dde9cff837f85d1e27a0a420942a8ce

show more ...


# e667239d 02-Sep-2022 Patrick Williams <patrick@stwcx.xyz>

remove dependency on sdeventplus

This repository doesn't really use sdeventplus, other than for
running the dbus-loop, but there is already trivial code in
sdbusplus for that. Simplify and remove t

remove dependency on sdeventplus

This repository doesn't really use sdeventplus, other than for
running the dbus-loop, but there is already trivial code in
sdbusplus for that. Simplify and remove the dependency.

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

show more ...


# 26959667 28-Jul-2022 George Liu <liuxiwei@inspur.com>

Update to latest clang-format

Refer:https://github.com/openbmc/docs/blob/ac5d544553934f8083c61c5986a1420261bc8a4c/style/cpp/.clang-format

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id:

Update to latest clang-format

Refer:https://github.com/openbmc/docs/blob/ac5d544553934f8083c61c5986a1420261bc8a4c/style/cpp/.clang-format

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I80f24d12c18074b3294b158c2a2a515d548aa0e1

show more ...


# 8e11cccb 22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

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

show more ...


123