Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2d49d10 authored by Brian Duddie's avatar Brian Duddie
Browse files

contexthub: Pass target API version in new fields

Update default implementation to use the new fields defined explicitly
for passing in target CHRE API version information, rather than adding
this data into the reserved area.

Bug: 64852297
Test: run CHQTS on Nanohub, rebuild test app targeting 1.2 and confirm
      it's interpreted correctly
Change-Id: Id11f9b510a2d239d285436e119b7b8dbece4c5df
parent e637aa32
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -440,9 +440,6 @@ Return<Result> Contexthub::loadNanoApp(uint32_t hubId,
    // Data from the nanoapp header is passed through HIDL as explicit fields,
    // but the legacy HAL expects it prepended to the binary, therefore we must
    // reconstruct it here prior to passing to the legacy HAL.
    uint32_t targetChreApiVersion =
        (appBinary.targetChreApiMajorVersion << 24) |
        (appBinary.targetChreApiMinorVersion << 16);
    const struct nano_app_binary_t header = {
        .header_version = htole32(1),
        .magic = htole32(NANOAPP_MAGIC),
@@ -450,8 +447,8 @@ Return<Result> Contexthub::loadNanoApp(uint32_t hubId,
        .app_version = htole32(appBinary.appVersion),
        .flags = htole32(appBinary.flags),
        .hw_hub_type = htole64(0),
        .reserved[0]    = htole32(targetChreApiVersion),
        .reserved[1]    = 0,
        .target_chre_api_major_version = appBinary.targetChreApiMajorVersion,
        .target_chre_api_minor_version = appBinary.targetChreApiMinorVersion,
    };
    const uint8_t *headerBytes = reinterpret_cast<const uint8_t *>(&header);