SCMGR.H
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:4k
源码类别:

DVD

开发平台:

Others

  1. /****************************************************************************************
  2.  *  Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
  3.  *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
  4.  *
  5.  *  File: $Workfile: SCMGR.H $             
  6.  *
  7.  * Description:
  8.  * ============
  9.  * 
  10.  * 
  11.  * Log:
  12.  * ====
  13.  * $Revision: 4 $
  14.  * Last Modified by $Author: Leonh $ at $Modtime: 11/19/03 12:58p $ 
  15.  ****************************************************************************************
  16.  * Updates:
  17.  ****************************************************************************************
  18.  * $Log: /I76/I76_Common/I76_Reference/Playcore/ScPad/SCMGR.H $
  19.  * 
  20.  * 4     11/20/03 1:54p Leonh
  21.  * remove the useless code
  22.  * 
  23.  * 3     10/23/03 11:41a Leslie
  24.  * add the function for read raw data 
  25.  * 
  26.  * 2     03-07-09 10:23 Leonh
  27.  * cache enable
  28.  * 
  29.  * 8     23/05/02 14:09 Ettim
  30.  * Adding support for an absolute 32 bit address on the scratch pad.
  31.  * 
  32.  * 7     23/04/02 9:36 Nirm
  33.  * - Added dependency in "Config.h".
  34.  * 
  35.  * 6     4/03/02 18:11 Nirm
  36.  * Move static allocations to ScPadAlloc.h.
  37.  * 
  38.  * 5     3/03/02 15:01 Nirm
  39.  * - Code cleanup;
  40.  * - Enhanced efficiency.
  41.  * 
  42.  * 4     9/01/02 9:26 Nirm
  43.  * Corrected Include-Paths.
  44.  * 
  45.  * 3     9/01/02 9:26 Nirm
  46.  * Corrected Include-Paths.
  47.  * 
  48.  * 2     25/12/01 18:09 Atai
  49.  * Ambigious pointer resolved by parenthesis
  50.  ****************************************************************************************/
  51. #include "Config.h" // Global Configuration - do not remove!
  52. #ifndef __SCMGR_H_
  53. #define __SCMGR_H_
  54. #include "IncludeSysDefs.h"
  55. #include "PlaycoreScPadScPadAlloc.h"
  56. /////////////////////////////////////////////////////////////////////////////
  57. // Structures and Types
  58. typedef union ScContainer_TAG {
  59. DWORD dwDWORD;
  60. WORD  wWORD[2];
  61. BYTE  ucBYTE[4];
  62. } Sc_cont;
  63. /////////////////////////////////////////////////////////////////////////////
  64. // Constants and Macros
  65. #define BYTE_PER_CONTAINER sizeof(Sc_cont)
  66. #define CONTAINER_NORM(n) ((n) >> 2) // Divide by BYTE_PER_CONTAINER
  67. #define CONTAINER_MOD(n) ((n) & 0x03)
  68. #define CONTAINER_COUNT(n) ((n + (BYTE_PER_CONTAINER-1)) / BYTE_PER_CONTAINER)
  69. #define NULL_HANDLE 0xFFFF
  70. /////////////////////////////////////////////////////////////////////////////
  71. // Scratch-Pad Interface
  72. BOOL sc_Init(WORD i_InitVal);
  73. UINT16 sc_Read(WORD i_hAddress, WORD i_uContainersCnt, Sc_cont *o_pDestBuff);
  74. UINT16 sc_Read32(UINT32 i_hAddress, WORD i_uContainersCnt, Sc_cont *o_pDestBuff);
  75. UINT16 sc_Write(WORD i_hAddress, WORD i_uContainersCnt, const Sc_cont *i_pSourceBuff);
  76. UINT16 sc_Write32(UINT32 i_hAddress, WORD i_uContainersCnt, const Sc_cont *i_pSourceBuff);
  77. WORD sc_Malloc(UINT16 i_uContainersCnt);
  78. BOOL sc_Free(WORD i_hAddress, UINT16 i_uContainersCnt);
  79. BOOL sc_CopyFromDisc(DWORD i_dwStartLBN, DWORD i_dwOffset, WORD i_uBytesCnt, 
  80.  WORD i_hDestinationAddress);
  81. BOOL sc_CopyFromDisc32(DWORD i_dwStartLBN, DWORD i_dwOffset, WORD i_uBytesCnt, 
  82.  DWORD i_hDestinationAddress);
  83. void sc_GetBytes(WORD i_hSourceAddress, WORD i_cbOffset, WORD i_cbSize, BYTE *o_pDestBuff);
  84. void sc_GetBytes32(UINT32 i_hSourceAddress, WORD i_cbOffset, WORD i_cbSize, BYTE *o_pDestBuff);
  85. void sc_SetBytes(WORD i_hDestinationAddress, WORD i_cbOffset, WORD i_cbSize, const BYTE *i_pSrcBuff);
  86. void sc_SetBytes32(UINT32 i_hDestinationAddress, WORD i_cbOffset, WORD i_cbSize, const BYTE *i_pSrcBuff);
  87. #ifdef _DEBUG
  88. void sc_PrintStatus(void);
  89. #endif //_DEBUG
  90. #endif // __SCMGR_H_