📄 cprm_api.h
字号:
/**************************************************************************** * Copyright (c) Sigma Designs, Inc. 2006. All rights reserved. *//** * @file cprm_api.h * * @brief CPRM for the SMP86xx * * @version 0.2 * * @buglog Second revision * * @author Glen Adams * * @date 2006-03-13 * ****************************************************************************/ #ifndef __CPRM_API_H__#define __CPRM_API_H__/*--------------------------------------------------------------------------- INCLUDES ---------------------------------------------------------------------------*/#include "rmdef/rmdef.h"#include "rmdef/rmpacketcommandops.h"#include "rmcci/include/output_cci.h"#ifdef __cplusplusextern "C" {#endif/*--------------------------------------------------------------------------- CONSTANT LITERALS ---------------------------------------------------------------------------*//** Minimum size of the RUA memory used for communicating with the xtask. This RUA memory is passed as the first parameter to cprm_initialize().*/#define CPRM_XRPC_SIZE ((4 + (16 * 24) + 25) * 1024)/*--------------------------------------------------------------------------- TYPES / CLASSES ---------------------------------------------------------------------------*//** Combines a RMpacketCommand callback with its context. It is used for low level communication with the drive.*/struct RMpacketHandle { void *handle; PacketCommandOp packetcommandop;};/*--------------------------------------------------------------------------- FUNCTION PROTOTYPES ---------------------------------------------------------------------------*//** Loads the CPRM shared library and the CPRM xtask. @param xrpc_base_addr base address of RUA memory used for communicating with the xtask. @param xrpc_base_size size of RUA memory used for communicating with the xtask. @param map_addr CPU virtual address of RUA memory used for communicating with the xtask. @param cprmSector the internal serial flash sector used to store CPRM keys. @param c2TablePtr address of the C2 table used by the microcode. @param c2KeyPtr address of the C2 key used by the microcode. @param cprmSlot the slot number where the CPRM xtask image has been preloaded. @return RM_OK if succesful, an error code if unsuccessful.*/RMstatus cprm_initialize_with_preload(RMuint32 xrpc_base_addr, RMuint32 xrpc_base_size, RMuint8 *map_addr, RMuint32 cprmSector, RMuint32 c2TablePtr, RMuint32 c2KeyPtr, RMuint32 cprmSlot);RMstatus cprm_initialize(RMuint32 xrpc_base_addr, RMuint32 xrpc_base_size, RMuint8 *map_addr, RMuint32 cprmSector, RMuint32 c2TablePtr, RMuint32 c2KeyPtr);/** Computes the CPRM title key of a CPRM disc, and gives it to the microcode. @param h a packet command callback/context for low level communication with the drive. @param encryptedTitleKey the 8-byte encrypted title key to be decrypted. @return RM_OK if succesful, an error code if unsuccessful.*/RMstatus cprm_compute_title_key(struct RMpacketHandle *h, RMuint8* encryptedTitleKey);/** Verify the DCI_CCI has not been tampered with @param dciCci the unencrypted DCI_CCI from the RDI Pack. @param verificationData the DCI_CCI verification data from the RDI Pack. @param titleKeyConversionData the Title Key Conversion Data from the following AV Pack. @param pesScramblingControlByte byte 20 from the following AV Pack. @param cprmCci the rmcci data structure to be filled in with the appropriate DCI_CCI info from the RDI Pack. @return RM_OK if succesful, an error code if unsuccessful.*/RMstatus cprm_verify_dci_cci(RMuint8* dciCci, RMuint8* verificationData, RMuint8* titleKeyConversionData, RMuint8 pesScramblingControlByte, struct rmcci *cprmCci);/** Unloads the CPRM xtask and the CPRM shared library. @param void @return RM_OK if succesful, an error code if unsuccessful.*/RMstatus cprm_terminate(void);#ifdef __cplusplus};#endif#endif //#ifndef __CPRM_API_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -