1 2 typedef enum { 3 MAPI_CMD_GFX_INIT =0, 4 MAPI_CMD_GFX_GET_INFO , 5 MAPI_CMD_GFX_LINEDRAW , 6 MAPI_CMD_GFX_RECTFILL , 7 MAPI_CMD_GFX_BITBLT , 8 MAPI_CMD_GFX_SET_ABL , 9 MAPI_CMD_GFX_SET_CONFIG , 10 MAPI_CMD_GFX_BITMAP , 11 MAPI_CMD_GFX_FONT , 12 MAPI_CMD_GFX_POWERSTATE , 13 MAPI_CMD_GFX_CB , 14 MAPI_CMD_GFX_MISC , 15 MAPI_CMD_GFX_TWOSRCBITBLT , 16 MAPI_CMD_GFX_TLB , 17 MAPI_CMD_GFX_GET_CAPS , 18 MAPI_CMD_GFX_DRAW_OVAL , 19 MAPI_CMD_GFX_TRIFILL , 20 MAPI_CMD_GFX_SPANFILL , 21 } eGFXIoctlOpt; 22 23 typedef enum 24 { 25 E_GFX_GET_BUFFERINFO =0, 26 E_GFX_GET_TAGID , 27 E_GFX_GET_NEXTTAGID , 28 E_GFX_GET_CLIP , 29 E_GFX_GET_INTENSITY , 30 E_GFX_GET_DBGINFO , 31 }EN_GFX_GET_CONFIG; 32 33 typedef enum 34 { 35 E_GFX_SET_POWERON =0, 36 E_GFX_SET_FLUSHQUEUE , 37 E_GFX_SET_TAGID , 38 E_GFX_SET_NEXTTAGID , 39 E_GFX_SET_WAITFORTAGID , 40 E_GFX_SET_ONEPIXELMODE , 41 E_GFX_SET_DITHER , 42 E_GFX_SET_VQ , 43 E_GFX_SET_MIRROR , 44 E_GFX_SET_DST_MIRROR , 45 E_GFX_SET_ROTATE , 46 E_GFX_SET_ITALIC , 47 E_GFX_SET_NEARESTMODE , 48 E_GFX_SET_PALETTEOPT , 49 E_GFX_SET_CLIP , 50 E_GFX_SET_WRITEPROTECT , 51 E_GFX_SET_ALPHA_COMPARE , 52 E_GFX_SET_CSC , 53 }EN_GFX_SET_CONFIG; 54 55 typedef enum 56 { 57 E_GFX_SET_ABL =0, 58 E_GFX_SET_COLORKEY , 59 E_GFX_SET_ROP , 60 E_GFX_SET_DFB , 61 E_GFX_SET_INTENSITY , 62 }EN_GFX_SET_ABL; 63 64 typedef enum 65 { 66 E_SRC_COLORKEY =0x1, 67 E_DST_COLORKEY =0x2, 68 }GFX_ColorKeyType; 69 70 typedef enum 71 { 72 E_LOADTEXTOUT =0x1, 73 E_CHARACTEROUT =0x2, 74 }GFX_TEXTTYPE; 75 76 typedef enum 77 { 78 E_CB_GETFONT =0x1, 79 E_CB_GETBMP =0x2, 80 }EN_GFX_CB_MODE; 81 82 typedef enum 83 { 84 E_MISC_EXIT =1, 85 E_MISC_CLEAR_FRAME_BY_WORLD , 86 E_MISC_CLEAR_FRAME , 87 E_MISC_LINE_PATTERN_RESET , 88 E_MISC_LINE_PATTERN , 89 E_MISC_BEGINE_DRAW , 90 E_MISC_END_DRAW , 91 E_MISC_DEBUG_LEVEL , 92 E_MISC_SET_HK , 93 E_MISC_GET_HK , 94 E_MISC_PATCH_MODE , 95 E_MISC_STR_BLT_SCK_TYPE , 96 E_MISC_SET_ALB_1555 , 97 E_MISC_GET_ALB_1555 , 98 }EN_GFX_MISC_MODE; 99 100 typedef enum 101 { 102 E_SET_PARA_0 =0x1, 103 E_SET_PARA_1 =0x2, 104 E_SET_PARA_2 =0x4, 105 E_SET_PARA_3 =0x8, 106 E_SET_PARA_4 =0x10, 107 }E_GFX_SET_PARA; 108 109 typedef struct 110 { 111 GFX_BufferInfo* pBufInfo; 112 MS_U32 u32OffsetByte; 113 }GFX_Src_BufferInfo, GFX_Dst_BufferInfo; 114 115 typedef struct _GFX_GET_BUFFERINFO 116 { 117 GFX_Src_BufferInfo* pSrcbufInfo; 118 GFX_Dst_BufferInfo* pDstbufInfo; 119 }GFX_Get_BufferInfo; 120 121 typedef struct 122 { 123 MS_BOOL bEnable; 124 GFX_ColorKeyMode eOpMode; 125 GFX_Buffer_Format eFmt; 126 void* pS_color; 127 void* pE_color; 128 }GFX_Set_Src_ColorKey, GFX_Set_Dst_ColorKey; 129 130 typedef struct 131 { 132 GFX_StretchCKType type; 133 GFX_RgbColor color; 134 }GFX_SetStrBltSckType; 135 136 /*================================================================================================================= 137 GFX Init 138 =================================================================================================================*/ 139 typedef struct 140 { 141 MS_U32 u32VCmdQSize; /// MIN:4K, MAX:512K, <MIN:Disable 142 MS_PHY u32VCmdQAddr; // 8-byte aligned 143 MS_BOOL bIsHK; /// Running as HK or Co-processor 144 MS_BOOL bIsCompt; /// Running as compatible mode. In compatible mode, the parameter checking loose for NOS APP compatibility. TRUE=>compatible with 51/Chakra , FALSE=>linux OS style 145 }GFX_Init_Config; 146 147 /*================================================================================================================= 148 GFX GetInfo 149 =================================================================================================================*/ 150 typedef struct 151 { 152 MS_U32 u32Id; 153 MS_U32* pColor; 154 }GFX_Get_Intensity; 155 156 typedef struct 157 { 158 EN_GFX_CAPS eCapType; 159 MS_U32* pRet; 160 MS_U32 Ret_Size; 161 }GFX_Get_CAPS; 162 163 typedef struct 164 { 165 MS_BOOL bStepTagBefore; 166 MS_U16* pTagID; 167 }GFX_Get_NextTagID; 168 169 /*================================================================================================================= 170 GFX SetFunction 171 *Rotate 172 *ColorKey 173 =================================================================================================================*/ 174 typedef struct 175 { 176 MS_BOOL bEnable; 177 GFX_BlendCoef eABLCoef; 178 GFX_AlphaSrcFrom eDb_abl; 179 MS_U8 u8Alpha_Const; 180 }GFX_Set_ABL; 181 182 typedef struct _GFX_SET_COLORKEY 183 { 184 MS_U32 ColorKey_Type; 185 GFX_Set_Src_ColorKey* pSrcbufInfo; 186 GFX_Set_Dst_ColorKey* pDstbufInfo; 187 }GFX_Set_Colorkey; 188 189 typedef struct 190 { 191 MS_BOOL bEnable; 192 GFX_ROP2_Op eRopMode; 193 }GFX_Set_ROP; 194 195 typedef struct 196 { 197 MS_BOOL bEnable; 198 GFX_DFBBldOP eSrcBldOP; 199 GFX_DFBBldOP eDstBldOP; 200 GFX_RgbColor sRGBColor; 201 MS_U16 u16DFBBldFlags; 202 }GFX_Set_DFB; 203 204 typedef struct 205 { 206 MS_U32 u32Id; 207 GFX_Buffer_Format eFmt; 208 MS_U32* pColor; 209 }GFX_Set_Intensity; 210 211 212 213 /*================================================================================================================= 214 GFX SetConfig 215 *OnePixel 216 *VQ 217 *Clip 218 =================================================================================================================*/ 219 typedef struct 220 { 221 MS_BOOL bEnable; 222 MS_PHY u32Addr; 223 GFX_VcmqBufSize enBufSize; 224 MS_U8 u8R_Threshold; 225 MS_U8 u8W_Threshold; 226 }GFX_Set_VQ; 227 228 typedef struct 229 { 230 MS_BOOL bMirrorX; 231 MS_BOOL bMirrorY; 232 }GFX_Set_Mirror; 233 234 typedef struct 235 { 236 MS_BOOL bEnable; 237 MS_U8 u8Ini_line; 238 MS_U8 u8Ini_dis; 239 MS_U8 u8Delta; 240 }GFX_Set_Italic; 241 242 typedef struct 243 { 244 MS_U8 u8Miu; 245 MS_PHY u32Addr_Low; 246 MS_PHY u32Addr_High; 247 GFX_WPType eWPType; 248 }GFX_Set_WriteProtect; 249 250 typedef struct 251 { 252 MS_BOOL enable; 253 GFX_ACmpOp eMode; 254 }GFX_Set_AlphaCompare; 255 256 typedef struct 257 { 258 GFX_PaletteEntry* pPalArray; 259 MS_U16 u32PalStart; 260 MS_U16 u32PalEnd; 261 }GFX_Set_PaletteOpt; 262 263 typedef struct 264 { 265 GFX_YUV_Rgb2Yuv mode; 266 GFX_YUV_OutRange yuv_out_range; 267 GFX_YUV_InRange uv_in_range; 268 GFX_YUV_422 srcfmt; 269 GFX_YUV_422 dstfmt; 270 }GFX_Set_CSC; 271 272 typedef struct 273 { 274 GFX_Point* pV0; 275 GFX_Point* pV1; 276 }GFX_Set_Clip_Property, GFX_Get_Clip_Property; 277 278 typedef struct 279 { 280 GFX_Dst_BufferInfo* pDstbufInfo; 281 GFX_RectFillInfo* pRectFillInfo; 282 }GFX_Set_RectFillInfo; 283 284 typedef struct 285 { 286 GFX_Dst_BufferInfo* pDstbufInfo; 287 GFX_TriFillInfo* pTriFillInfo; 288 }GFX_Set_TriFillInfo; 289 290 typedef struct 291 { 292 GFX_Dst_BufferInfo* pDstbufInfo; 293 GFX_SpanFillInfo* pSpanFillInfo; 294 }GFX_Set_SpanFillInfo; 295 296 typedef struct 297 { 298 GFX_Src_BufferInfo* pSrcbufInfo; ///Width/Height/Pitch/Colofmt 299 GFX_Dst_BufferInfo* pDstbufInfo; 300 GFX_DrawRect* pDrawRect; ///Position 301 GFX_ScaleInfo* pScaleInfo; ///ScaleInfo 302 MS_U32 u32DrawFlag; 303 void* pIntensity; ///I1/I2/I4 304 }GFX_BitBltInfo; 305 306 typedef struct 307 { 308 GFX_Src_BufferInfo* pSrcbufInfo_0; ///Width/Height/Pitch/Colofmt 309 GFX_Src_BufferInfo* pSrcbufInfo_1; ///Width/Height/Pitch/Colofmt 310 GFX_Dst_BufferInfo* pDstbufInfo; 311 GFX_DrawTwoSourceRect* pDrawTwoSrcRect; ///Position 312 MS_U32 u32DrawFlag; 313 }GFX_TwoSrc_BitBltInfo; 314 315 typedef struct 316 { 317 GFX_Src_BufferInfo* pSrcbufInfo; ///Width/Height/Pitch/Colofmt 318 GFX_Dst_BufferInfo* pDstbufInfo; 319 MS_S32 handle; 320 GFX_DrawBmpInfo* pBmpInfo; 321 }GFX_Bitmap; 322 323 typedef struct 324 { 325 GFX_Src_BufferInfo* pSrcbufInfo; ///Width/Height/Pitch/Colofmt 326 GFX_Dst_BufferInfo* pDstbufInfo; 327 MS_S32 fHandle; 328 MS_U32* pIndex; 329 MS_U32 u32StrWidth; 330 GFX_TextOutInfo* pTextInfo; 331 }GFX_TextOut; 332 333 typedef struct 334 { 335 GFX_Src_BufferInfo* pSrcbufInfo; ///Width/Height/Pitch/Colofmt 336 GFX_Dst_BufferInfo* pDstbufInfo; 337 GFX_CharInfo* pChar; 338 GFX_TextOutInfo* pTextInfo; 339 }GFX_CharacterOut; 340 341 typedef struct 342 { 343 MS_PHY StrAddr; 344 MS_U32 length; 345 MS_U32 ClearValue; 346 }GFX_ClearFrameBuffer; 347 348 typedef struct 349 { 350 MS_BOOL enable; 351 MS_U8 linePattern; 352 MS_U8 repeatFactor; 353 }GFX_SetLinePattern; 354 355 typedef struct 356 { 357 MS_PHY tlb_src_addr; 358 MS_PHY tlb_dst_addr; 359 }GFX_SetTLB_Addr; 360 361 /*=================================================================================================================== 362 Input Strucure 363 ====================================================================================================================*/ 364 typedef enum 365 { 366 E_GFX_INIT_VER0 =0, 367 }EN_GFX_INIT_VER; 368 369 typedef enum 370 { 371 E_GFX_GET_INFO_VER0 =0, 372 }EN_GFX_GET_INFO_VER; 373 374 typedef enum 375 { 376 E_GFX_GET_CAPS_VER0 =0, 377 }EN_GFX_GET_CAPS_VER; 378 379 typedef enum 380 { 381 E_GFX_LINEDRAW_VER0 =0, 382 }EN_GFX_LINEDRAW_VER; 383 384 typedef enum 385 { 386 E_GFX_RECTFILL_VER0 =0, 387 }EN_GFX_RECTFILL_VER; 388 389 typedef enum 390 { 391 E_GFX_TRIFILL_VER0 =0, 392 }EN_GFX_TRIFILL_VER; 393 394 typedef enum 395 { 396 E_GFX_SPANFILL_VER0 =0, 397 }EN_GFX_SPANFILL_VER; 398 399 typedef enum 400 { 401 E_GFX_BITBLT_VER0 =0, 402 }EN_GFX_BITBLT_VER; 403 404 typedef enum 405 { 406 E_GFX_ABL_VER0 =0, 407 }EN_GFX_ABL_VER; 408 409 typedef enum 410 { 411 E_GFX_SET_CONFIG_VER0 =0, 412 }EN_GFX_SET_CONFIG_VER; 413 414 typedef enum 415 { 416 E_GFX_BITMAP_VER0 =0, 417 }EN_GFX_BITMAP_VER; 418 419 typedef enum 420 { 421 E_GFX_TEXT_VER0 =0, 422 }EN_GFX_TEXTOUT_VER; 423 424 typedef enum 425 { 426 E_GFX_POWERSTATE_VER0 =0, 427 }EN_GFX_POWERSTATE_VER; 428 429 typedef enum 430 { 431 E_GFX_CB_VER0 =0, 432 }EN_GFX_CB_VER; 433 434 typedef enum 435 { 436 E_GFX_MISC_VER0 =0, 437 }EN_GFX_MISC_VER; 438 439 typedef enum 440 { 441 E_GFX_TLB_VER0 =0, 442 }EN_GFX_TLB_VER; 443 444 typedef enum 445 { 446 E_GFX_DRAW_OVAL_VER0 =0, 447 }EN_GFX_DRAW_OVAL_VER; 448 449 typedef struct 450 { 451 EN_GFX_INIT_VER eVerType; 452 GFX_Init_Config* pGFX_Init; 453 MS_U32 u32Size; 454 }GFX_INIT_ARGS; 455 456 typedef struct 457 { 458 EN_GFX_GET_INFO_VER eVerType; 459 EN_GFX_GET_CONFIG eGFX_GetConfig; 460 void* pGFX_GetInfo; 461 MS_U32 u32Size; 462 }GFX_GETINFO_ARGS; 463 464 typedef struct 465 { 466 EN_GFX_GET_CAPS_VER eVerType; 467 EN_GFX_CAPS eCaps; 468 void* pGFX_GetCaps; 469 MS_U32 u32Size; 470 }GFX_GETCAPS_ARGS; 471 472 typedef struct 473 { 474 GFX_Dst_BufferInfo* pDstbufInfo; 475 GFX_DrawLineInfo* pDrawLineInfo; 476 }GFX_Set_DrawLineInfo; 477 478 479 typedef struct 480 { 481 EN_GFX_LINEDRAW_VER eVerType; 482 GFX_Set_DrawLineInfo* pLineInfo; 483 MS_U32 u32Size; 484 }GFX_LINEDRAW_ARGS; 485 486 typedef struct 487 { 488 EN_GFX_RECTFILL_VER eVerType; 489 GFX_Set_RectFillInfo* pFillBlock; 490 MS_U32 u32Size; 491 }GFX_RECTFILL_ARGS; 492 493 typedef struct 494 { 495 EN_GFX_TRIFILL_VER eVerType; 496 GFX_Set_TriFillInfo* pFillBlock; 497 MS_U32 u32Size; 498 }GFX_TRIFILL_ARGS; 499 500 typedef struct 501 { 502 EN_GFX_SPANFILL_VER eVerType; 503 GFX_Set_SpanFillInfo* pFillBlock; 504 MS_U32 u32Size; 505 }GFX_SPANFILL_ARGS; 506 507 typedef struct 508 { 509 EN_GFX_BITBLT_VER eVerType; 510 GFX_BitBltInfo* pGFX_BitBlt; 511 MS_U32 u32Size; 512 }GFX_BITBLT_ARGS; 513 514 typedef struct 515 { 516 EN_GFX_BITBLT_VER eVerType; 517 GFX_TwoSrc_BitBltInfo* pGFX_TwoSrc_BitBlt; 518 MS_U32 u32Size; 519 }GFX_TWOSRC_BITBLT_ARGS; 520 521 typedef struct 522 { 523 EN_GFX_ABL_VER eVerType; 524 EN_GFX_SET_ABL eGFX_SetABL; 525 void* pGFX_ABL; 526 MS_U32 u32Size; 527 }GFX_ABL_ARGS; 528 529 typedef struct 530 { 531 EN_GFX_SET_CONFIG_VER eVerType; 532 EN_GFX_SET_CONFIG eGFX_SetConfig; 533 void* pGFX_ConfigInfo; 534 MS_U32 u32Size; 535 }GFX_SETCONFIG_ARGS; 536 537 typedef struct 538 { 539 EN_GFX_BITMAP_VER eVerType; 540 GFX_Bitmap* pGFX_Bitmap; 541 MS_U32 u32Size; 542 }GFX_BITMAP_ARGS; 543 544 typedef struct 545 { 546 EN_GFX_TEXTOUT_VER eVerType; 547 GFX_TEXTTYPE eGFX_TextType; 548 void* pGFX_TextOut; 549 MS_U32 u32Size; 550 }GFX_TEXTOUT_ARGS; 551 552 typedef struct 553 { 554 EN_GFX_POWERSTATE_VER eVerType; 555 EN_POWER_MODE eGFX_PowerStateType; 556 void* pGFX_PowerState; 557 MS_U32 u32Size; 558 }GFX_POWERSTATE_ARGS; 559 560 typedef struct 561 { 562 EN_GFX_CB_VER eVerType; 563 EN_GFX_CB_MODE eGFX_CBType; 564 void* pGFX_CBInfo; 565 MS_U32 u32Size; 566 }GFX_CB_ARGS; 567 568 typedef struct 569 { 570 EN_GFX_MISC_VER eVerType; 571 EN_GFX_MISC_MODE eGFX_MISCType; 572 void* pGFX_Info; 573 MS_U32 u32Size; 574 }GFX_MISC_ARGS; 575 576 typedef enum 577 { 578 E_GFX_TLB_SET_MODE, 579 E_GFX_TLB_SET_ADDR, 580 E_GFX_TLB_FLUSH_TABLE, 581 E_GFX_TLB_TAG, 582 }EN_GFX_TLB_CMD; 583 584 typedef struct _GFX_TLB_ARGS 585 { 586 EN_GFX_TLB_CMD en_cmd; 587 EN_GFX_TLB_VER eVerType; 588 EN_GFX_TLB_Mode TLB_mode; 589 void* psetting; 590 MS_U32 u32Size; 591 }GFX_TLB_ARGS, *PGFX_TLB_ARGS; 592 593 typedef struct 594 { 595 EN_GFX_DRAW_OVAL_VER eVerType; 596 void* psetting; 597 MS_U32 u32Size; 598 }GFX_DRAW_OVAL_ARGS; 599 600 601