@@ -386,6 +386,10 @@ static int get_chassis_asset_tag(Context *c, char **ret) {
386386 return get_dmi_property (c , "ID_CHASSIS_ASSET_TAG" , ret );
387387}
388388
389+ static int get_board_asset_tag (Context * c , char * * ret ) {
390+ return get_dmi_property (c , "ID_BOARD_ASSET_TAG" , ret );
391+ }
392+
389393static int get_hardware_vendor (Context * c , char * * ret ) {
390394 return get_dmi_properties (c , STRV_MAKE_CONST ("ID_VENDOR_FROM_DATABASE" , "ID_VENDOR" ), ret );
391395}
@@ -1049,6 +1053,23 @@ static int property_get_chassis_asset_tag(
10491053 return sd_bus_message_append (reply , "s" , chassis_asset_tag );
10501054}
10511055
1056+ static int property_get_board_asset_tag (
1057+ sd_bus * bus ,
1058+ const char * path ,
1059+ const char * interface ,
1060+ const char * property ,
1061+ sd_bus_message * reply ,
1062+ void * userdata ,
1063+ sd_bus_error * error ) {
1064+
1065+ _cleanup_free_ char * board_asset_tag = NULL ;
1066+ Context * c = ASSERT_PTR (userdata );
1067+
1068+ (void ) get_board_asset_tag (c , & board_asset_tag );
1069+
1070+ return sd_bus_message_append (reply , "s" , board_asset_tag );
1071+ }
1072+
10521073static int property_get_hostname (
10531074 sd_bus * bus ,
10541075 const char * path ,
@@ -1720,7 +1741,8 @@ static int method_get_machine_info(sd_bus_message *m, void *userdata, sd_bus_err
17201741static int build_describe_response (Context * c , bool privileged , sd_json_variant * * ret ) {
17211742 _cleanup_free_ char * hn = NULL , * dhn = NULL , * in = NULL ,
17221743 * chassis = NULL , * vendor = NULL , * model = NULL , * serial = NULL , * firmware_version = NULL ,
1723- * firmware_vendor = NULL , * chassis_asset_tag = NULL , * sku = NULL , * hardware_version = NULL ;
1744+ * firmware_vendor = NULL , * chassis_asset_tag = NULL , * board_asset_tag = NULL ,
1745+ * sku = NULL , * hardware_version = NULL ;
17241746 _cleanup_strv_free_ char * * os_release_pairs = NULL , * * machine_info_pairs = NULL ;
17251747 usec_t firmware_date = USEC_INFINITY , eol = USEC_INFINITY ;
17261748 _cleanup_ (sd_json_variant_unrefp ) sd_json_variant * v = NULL ;
@@ -1770,6 +1792,7 @@ static int build_describe_response(Context *c, bool privileged, sd_json_variant
17701792 (void ) get_firmware_vendor (c , & firmware_vendor );
17711793 (void ) get_firmware_date (c , & firmware_date );
17721794 (void ) get_chassis_asset_tag (c , & chassis_asset_tag );
1795+ (void ) get_board_asset_tag (c , & board_asset_tag );
17731796
17741797 if (c -> data [PROP_OS_SUPPORT_END ])
17751798 (void ) os_release_support_ended (c -> data [PROP_OS_SUPPORT_END ], /* quiet= */ false, & eol );
@@ -1797,6 +1820,7 @@ static int build_describe_response(Context *c, bool privileged, sd_json_variant
17971820 SD_JSON_BUILD_PAIR_STRING ("IconName" , in ?: c -> data [PROP_ICON_NAME ]),
17981821 SD_JSON_BUILD_PAIR_STRING ("Chassis" , chassis ),
17991822 SD_JSON_BUILD_PAIR_STRING ("ChassisAssetTag" , chassis_asset_tag ),
1823+ SD_JSON_BUILD_PAIR_STRING ("BoardAssetTag" , board_asset_tag ),
18001824 SD_JSON_BUILD_PAIR_STRING ("Deployment" , c -> data [PROP_DEPLOYMENT ]),
18011825 SD_JSON_BUILD_PAIR_STRING ("Location" , c -> data [PROP_LOCATION ]),
18021826 SD_JSON_BUILD_PAIR_STRING ("KernelName" , u .sysname ),
@@ -1897,6 +1921,7 @@ static const sd_bus_vtable hostname_vtable[] = {
18971921 SD_BUS_PROPERTY ("BootID" , "ay" , property_get_boot_id , 0 , SD_BUS_VTABLE_PROPERTY_CONST ),
18981922 SD_BUS_PROPERTY ("VSockCID" , "u" , property_get_vsock_cid , 0 , SD_BUS_VTABLE_PROPERTY_CONST ),
18991923 SD_BUS_PROPERTY ("ChassisAssetTag" , "s" , property_get_chassis_asset_tag , 0 , SD_BUS_VTABLE_PROPERTY_CONST ),
1924+ SD_BUS_PROPERTY ("BoardAssetTag" , "s" , property_get_board_asset_tag , 0 , SD_BUS_VTABLE_PROPERTY_CONST ),
19001925
19011926 SD_BUS_METHOD_WITH_ARGS ("SetHostname" ,
19021927 SD_BUS_ARGS ("s" , hostname , "b" , interactive ),
0 commit comments