SDT.dsl 2644: PARM |= (DerefOf (CDCT [^^MCHK.DCFE]) << 0x15) /* _SB_.PCI0.GFX0.PARM */
Error 6163 - ^ Object is created temporarily in another method and cannot be accessed (^^MCHK.DCFE)
美光科技应用工程师 Aaron Boehm 解释说,问题在于“时钟可能会有很大差异,因此 DQS 用于将所有数据与时钟对齐。在 DRAM 内部,选通脉冲跟踪时钟。因此,当 DRAM 输出数据时,数据会与选通脉冲对齐,而选通脉冲又跟踪时钟。当内存控制器写入 DRAM 时,数据集中到选通脉冲。数据选通脉冲 (DQS) 允许控制器和 DRAM 查看并锁定数据。 ”
///
/// Pointer to the start of a variable argument list stored in a memory buffer. Same as UINT8 *.
///
typedef UINTN *BASE_LIST;
此外,经常和 BASE_ARG 结合起来使用,这个宏会返回指针指向的下一个值:
/**
Returns an argument of a specified type from a variable argument list and updates
the pointer to the variable argument list to point to the next argument.
This function returns an argument of the type specified by TYPE from the beginning
of the variable argument list specified by Marker. Marker is then updated to point
to the next argument in the variable argument list. The method for computing the
pointer to the next argument in the argument list is CPU specific following the EFIAPI ABI.
@param Marker The pointer to the beginning of a variable argument list.
@param TYPE The type of argument to retrieve from the beginning
of the variable argument list.
@return An argument of the type specified by TYPE.
**/
#define BASE_ARG(Marker, TYPE) (*(TYPE *) ((Marker += _BASE_INT_SIZE_OF (TYPE)) - _BASE_INT_SIZE_OF (TYPE)))