Introduce UsageTableHeader class
[ Merge of http://go/wvgerrit/23820 ] The UsageTableHeader class is a singleton that CDM sessions will share. A separate object will be created for each security level. The class synchronizes access to usage table header and associated data-structures and controls when they are read in or written out to non-secure persistent storage. Upgrades from a fixed size usage table (supported by previous versions of the OEMCrypto API v9-12) are handled by this class. b/34327459 Test: Verified by unit/integration tests on angler Change-Id: Ifc5996985e76bc260c01e55bc12aab1248389a80
This commit is contained in:
@@ -244,10 +244,21 @@ enum {
|
||||
kInvalidParametersEng23 = ERROR_DRM_VENDOR_MIN + 230,
|
||||
kUsageInformationSupportFailed = ERROR_DRM_VENDOR_MIN + 231,
|
||||
kUsageSupportGetApiFailed = ERROR_DRM_VENDOR_MIN + 232,
|
||||
kUnexpectedEmptyUsageEntry = ERROR_DRM_VENDOR_MIN + 233,
|
||||
kInvalidUsageEntryNumberModification = ERROR_DRM_VENDOR_MIN + 234,
|
||||
kUsageInvalidNewEntry = ERROR_DRM_VENDOR_MIN + 235,
|
||||
kUsageInvalidParameters1 = ERROR_DRM_VENDOR_MIN + 236,
|
||||
kUsageRetrieveLicenseFailed = ERROR_DRM_VENDOR_MIN + 237,
|
||||
kUsageRetrieveUsageInfoFailed = ERROR_DRM_VENDOR_MIN + 238,
|
||||
kUsageRetrieveInvalidStorageType = ERROR_DRM_VENDOR_MIN + 239,
|
||||
kUsageEntryNumberMismatch = ERROR_DRM_VENDOR_MIN + 240,
|
||||
kUsageStoreLicenseFailed = ERROR_DRM_VENDOR_MIN + 241,
|
||||
kUsageStoreUsageInfoFailed = ERROR_DRM_VENDOR_MIN + 242,
|
||||
kUsageInvalidLoadEntry = ERROR_DRM_VENDOR_MIN + 243,
|
||||
|
||||
// This should always follow the last error code.
|
||||
// The offset value should be updated each time a new error code is added.
|
||||
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 232,
|
||||
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 243,
|
||||
|
||||
// Used by crypto test mode
|
||||
kErrorTestMode = ERROR_DRM_VENDOR_MAX,
|
||||
|
||||
@@ -479,6 +479,28 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
|
||||
return kUsageInformationSupportFailed;
|
||||
case wvcdm::USAGE_SUPPORT_GET_API_FAILED:
|
||||
return kUsageSupportGetApiFailed;
|
||||
case wvcdm::UNEXPECTED_EMPTY_USAGE_ENTRY:
|
||||
return kUnexpectedEmptyUsageEntry;
|
||||
case wvcdm::INVALID_USAGE_ENTRY_NUMBER_MODIFICATION:
|
||||
return kInvalidUsageEntryNumberModification;
|
||||
case wvcdm::USAGE_INVALID_NEW_ENTRY:
|
||||
return kUsageInvalidNewEntry;
|
||||
case wvcdm::USAGE_INVALID_PARAMETERS_1:
|
||||
return kUsageInvalidParameters1;
|
||||
case wvcdm::USAGE_RETRIEVE_LICENSE_FAILED:
|
||||
return kUsageRetrieveLicenseFailed;
|
||||
case wvcdm::USAGE_RETRIEVE_USAGE_INFO_FAILED:
|
||||
return kUsageRetrieveUsageInfoFailed;
|
||||
case wvcdm::USAGE_RETRIEVE_INVALID_STORAGE_TYPE:
|
||||
return kUsageRetrieveInvalidStorageType;
|
||||
case wvcdm::USAGE_ENTRY_NUMBER_MISMATCH:
|
||||
return kUsageEntryNumberMismatch;
|
||||
case wvcdm::USAGE_STORE_LICENSE_FAILED:
|
||||
return kUsageStoreLicenseFailed;
|
||||
case wvcdm::USAGE_STORE_USAGE_INFO_FAILED:
|
||||
return kUsageStoreUsageInfoFailed;
|
||||
case wvcdm::USAGE_INVALID_LOAD_ENTRY:
|
||||
return kUsageInvalidLoadEntry;
|
||||
|
||||
case wvcdm::UNUSED_1:
|
||||
case wvcdm::UNUSED_2:
|
||||
|
||||
Reference in New Issue
Block a user