| Index: content_decryption_module_ext.h
 | 
| diff --git a/content_decryption_module_ext.h b/content_decryption_module_ext.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..4a3c10ec56523c187d50a1cdefa7f9cade76e485
 | 
| --- /dev/null
 | 
| +++ b/content_decryption_module_ext.h
 | 
| @@ -0,0 +1,60 @@
 | 
| +// Copyright 2017 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#ifndef CDM_CONTENT_DECRYPTION_MODULE_EXT_H_
 | 
| +#define CDM_CONTENT_DECRYPTION_MODULE_EXT_H_
 | 
| +
 | 
| +#if defined(WIN32)
 | 
| +#include <windows.h>
 | 
| +#endif
 | 
| +
 | 
| +#include "content_decryption_module_export.h"
 | 
| +
 | 
| +#if defined(_MSC_VER)
 | 
| +typedef unsigned int uint32_t;
 | 
| +#else
 | 
| +#include <stdint.h>
 | 
| +#endif
 | 
| +
 | 
| +namespace cdm {
 | 
| +
 | 
| +#if defined(WIN32)
 | 
| +typedef wchar_t FilePathCharType;
 | 
| +typedef HANDLE PlatformFile;
 | 
| +const PlatformFile kInvalidPlatformFile = INVALID_HANDLE_VALUE;
 | 
| +#elif defined(OS_POSIX)
 | 
| +typedef char FilePathCharType;
 | 
| +typedef int PlatformFile;
 | 
| +const PlatformFile kInvalidPlatformFile = -1;
 | 
| +#else  // !defined(WIN32) && !defined(OS_POSIX)
 | 
| +#error Unsupported platform.
 | 
| +#endif  // defined(WIN32)
 | 
| +
 | 
| +struct HostFile {
 | 
| +  HostFile(const FilePathCharType* file_path,
 | 
| +           PlatformFile file,
 | 
| +           PlatformFile sig_file)
 | 
| +      : file_path(file_path), file(file), sig_file(sig_file) {}
 | 
| +
 | 
| +  // File that is part of the host of the CDM.
 | 
| +  const FilePathCharType* file_path = nullptr;
 | 
| +  PlatformFile file = kInvalidPlatformFile;
 | 
| +
 | 
| +  // Signature file for |file|.
 | 
| +  PlatformFile sig_file = kInvalidPlatformFile;
 | 
| +};
 | 
| +
 | 
| +}  // namespace cdm
 | 
| +
 | 
| +extern "C" {
 | 
| +
 | 
| +// Verifies CDM host files, which are opened in read-only mode and passed in
 | 
| +// |host_files|. The CDM MUST return as soon as possible and process the files
 | 
| +// asynchronously. All files MUST be closed by the CDM after this one-time
 | 
| +// processing is finished.
 | 
| +CDM_API void VerifyHostFiles(const cdm::HostFile* host_files,
 | 
| +                             uint32_t num_files);
 | 
| +}
 | 
| +
 | 
| +#endif  // CDM_CONTENT_DECRYPTION_MODULE_EXT_H_
 | 
| 
 |