<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_cpuid_leaf_by_ordinal(self, ordinal):
 """Used to enumerate CPUID information override values. in ordinal of type int The ordinal number of the leaf to get. out idx of type int CPUID leaf index. out idx_sub of type int CPUID leaf sub-index. out val_eax of type int CPUID leaf value for register eax. out val_ebx of type int CPUID leaf value for register ebx. out val_ecx of type int CPUID leaf value for register ecx. out val_edx of type int CPUID leaf value for register edx. raises :class:`OleErrorInvalidarg` Invalid ordinal number is out of range. """

        if not isinstance(ordinal, baseinteger):
            raise TypeError("ordinal can only be an instance of type baseinteger")
        (idx, idx_sub, val_eax, val_ebx, val_ecx, val_edx) = self._call("getCPUIDLeafByOrdinal",
                     in_p=[ordinal])
        return (idx, idx_sub, val_eax, val_ebx, val_ecx, val_edx)