Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * Copyright 2006-2007 Advanced Micro Devices, Inc.  
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Software"),
  6.  * to deal in the Software without restriction, including without limitation
  7.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8.  * and/or sell copies of the Software, and to permit persons to whom the
  9.  * Software is furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice shall be included in
  12.  * all copies or substantial portions of the Software.
  13.  *
  14.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  17.  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  18.  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  19.  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  20.  * OTHER DEALINGS IN THE SOFTWARE.
  21.  */
  22.  
  23. /*++
  24.  
  25. Module Name:
  26.  
  27. Decoder.h
  28.  
  29. Abstract:
  30.  
  31. Includes all helper headers
  32.  
  33. Revision History:
  34.  
  35. NEG:27.08.2002  Initiated.
  36. --*/
  37. #ifndef _DECODER_H_
  38. #define _DECODER_H_
  39. #define WS_QUOTIENT_C                                                                                                           64
  40. #define WS_REMINDER_C                                                                                                           (WS_QUOTIENT_C+1)
  41. #define WS_DATAPTR_C                                                                                                            (WS_REMINDER_C+1)
  42. #define WS_SHIFT_C                                                                                                          (WS_DATAPTR_C+1)
  43. #define WS_OR_MASK_C                                                                                                      (WS_SHIFT_C+1)
  44. #define WS_AND_MASK_C                                                                                                     (WS_OR_MASK_C+1)
  45. #define WS_FB_WINDOW_C                          (WS_AND_MASK_C+1)
  46. #define WS_ATTRIBUTES_C                         (WS_FB_WINDOW_C+1)
  47. #define PARSER_VERSION_MAJOR                   0x00000000
  48. #define PARSER_VERSION_MINOR                   0x0000000E
  49. #define PARSER_VERSION                         (PARSER_VERSION_MAJOR | PARSER_VERSION_MINOR)
  50. #include "CD_binding.h"
  51. #include "CD_Common_Types.h"
  52. #include "CD_hw_services.h"
  53. #include "CD_Structs.h"
  54. #include "CD_Definitions.h"
  55. #include "CD_Opcodes.h"
  56.  
  57. #define SOURCE_ONLY_CMD_TYPE            0//0xFE
  58. #define SOURCE_DESTINATION_CMD_TYPE     1//0xFD
  59. #define DESTINATION_ONLY_CMD_TYPE       2//0xFC
  60.  
  61. #define ACCESS_TYPE_BYTE                        0//0xF9
  62. #define ACCESS_TYPE_WORD                        1//0xF8
  63. #define ACCESS_TYPE_DWORD                       2//0xF7
  64. #define SWITCH_TYPE_ACCESS                      3//0xF6
  65.  
  66. #define CD_CONTINUE                                     0//0xFB
  67. #define CD_STOP                                         1//0xFA
  68.  
  69.  
  70. #define IS_END_OF_TABLE(cmd) ((cmd) == EOT_OPCODE)
  71. #define IS_COMMAND_VALID(cmd) (((cmd)<=LastValidCommand)&&((cmd)>=FirstValidCommand))
  72. #define IS_IT_SHIFT_COMMAND(Opcode) ((Opcode<=SHIFT_RIGHT_MC_OPCODE)&&(Opcode>=SHIFT_LEFT_REG_OPCODE))
  73. #define IS_IT_XXXX_COMMAND(Group, Opcode) ((Opcode<=Group##_MC_OPCODE)&&(Opcode>=Group##_REG_OPCODE))
  74. #define CheckCaseAndAdjustIP_Macro(size) \
  75.         if (pParserTempData->SourceData32==(UINT32)((CASE_OFFSET*)pParserTempData->pWorkingTableData->IP)->XX_Access.size##.Access.Value){\
  76.                 pParserTempData->CommandSpecific.ContinueSwitch = CD_STOP;\
  77.                 pParserTempData->pWorkingTableData->IP =(COMMAND_HEADER_POINTER *) RELATIVE_TO_TABLE(((CASE_OFFSET*)pParserTempData->pWorkingTableData->IP)->XX_Access.size##.Access.JumpOffset);\
  78.         }else{\
  79.                 pParserTempData->pWorkingTableData->IP+=(sizeof (CASE_##size##ACCESS)\
  80.                 +sizeof(((CASE_OFFSET*)pParserTempData->pWorkingTableData->IP)->CaseSignature));\
  81.         }
  82.  
  83. #endif
  84. /*      pWorkingTableData->pCmd->Header.Attribute.SourceAlignment=alignmentLowerWord;\*/
  85.  
  86. // EOF
  87.