本网站可以出售:只需60000元直接拥有。QQ:939804642
您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ACPI_TO_INTEGER函数代码示例

51自学网 2021-06-01 19:33:01
  C++
这篇教程C++ ACPI_TO_INTEGER函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ACPI_TO_INTEGER函数的典型用法代码示例。如果您正苦于以下问题:C++ ACPI_TO_INTEGER函数的具体用法?C++ ACPI_TO_INTEGER怎么用?C++ ACPI_TO_INTEGER使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ACPI_TO_INTEGER函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: LsAmlListingWalk

static ACPI_STATUSLsAmlListingWalk (    ACPI_PARSE_OBJECT       *Op,    UINT32                  Level,    void                    *Context){    UINT8                   FileByte;    UINT32                  i;    UINT32                  FileId = (UINT32) ACPI_TO_INTEGER (Context);    LsWriteNodeToListing (Op, FileId);    if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DATA)    {        /* Buffer is a resource template, don't dump the data all at once */        return (AE_OK);    }    /* Write the hex bytes to the listing file(s) (if requested) */    for (i = 0; i < Op->Asl.FinalAmlLength; i++)    {        if (ACPI_FAILURE (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1)))        {            FlFileError (ASL_FILE_AML_OUTPUT, ASL_MSG_READ);            AslAbort ();        }        LsWriteListingHexBytes (&FileByte, 1, FileId);    }    return (AE_OK);}
开发者ID:oza,项目名称:FreeBSD-7.3-dyntick,代码行数:34,


示例2: acpi_os_unmap_memory

void acpi_os_unmap_memory(void *where, acpi_size length){	acpi_physical_address offset;	acpi_size page_size;	page_size = acpi_os_get_page_size();	offset = ACPI_TO_INTEGER(where) % page_size;	munmap((u8 *)where - offset, (length + offset));}
开发者ID:AshishNamdev,项目名称:linux,代码行数:9,


示例3: AcpiOsUnmapMemory

voidAcpiOsUnmapMemory (    void                    *Where,    ACPI_SIZE               Length){    ACPI_PHYSICAL_ADDRESS   Offset;    ACPI_SIZE               PageSize;    PageSize = AcpiOsGetPageSize ();    Offset = ACPI_TO_INTEGER (Where) % PageSize;    munmap ((UINT8 *) Where - Offset, (Length + Offset));}
开发者ID:alexandermerritt,项目名称:dragonfly,代码行数:13,


示例4: AeSetupConfiguration

static ACPI_STATUSAeSetupConfiguration (    void                    *RegionAddr){    ACPI_OBJECT_LIST        ArgList;    ACPI_OBJECT             Arg[3];    /*     * Invoke _CFG method if present     */    ArgList.Count = 1;    ArgList.Pointer = Arg;    Arg[0].Type = ACPI_TYPE_INTEGER;    Arg[0].Integer.Value = ACPI_TO_INTEGER (RegionAddr);    (void) AcpiEvaluateObject (NULL, "//_CFG", &ArgList, NULL);    return (AE_OK);}
开发者ID:ryo,项目名称:netbsd-src,代码行数:20,


示例5: ExInitializeAcpiTables

voidExInitializeAcpiTables (    void){    /* Setup RSDP */    Rsdp->RsdtPhysicalAddress = (UINT32) ACPI_TO_INTEGER (RsdtCode);    Rsdp->XsdtPhysicalAddress = (UINT64) ACPI_TO_INTEGER (XsdtCode);    /* RSDT and XSDT */    Rsdt->TableOffsetEntry[0] = (UINT32) ACPI_TO_INTEGER (FadtCode);    Xsdt->TableOffsetEntry[0] = (UINT64) ACPI_TO_INTEGER (FadtCode);    /* FADT */    Fadt->Facs = 0;    Fadt->Dsdt = 0;    Fadt->XFacs = (UINT64) ACPI_TO_INTEGER (FacsCode);    Fadt->XDsdt = (UINT64) ACPI_TO_INTEGER (DsdtCode);    /* Set new checksums for the modified tables */    Rsdp->Checksum = 0;    Rsdp->Checksum = (UINT8) -AcpiTbChecksum (        (void *) RsdpCode, ACPI_RSDP_CHECKSUM_LENGTH);    Rsdt->Header.Checksum = 0;    Rsdt->Header.Checksum = (UINT8) -AcpiTbChecksum (        (void *) Rsdt, Rsdt->Header.Length);    Xsdt->Header.Checksum = 0;    Xsdt->Header.Checksum =  (UINT8) -AcpiTbChecksum (        (void *) Xsdt, Xsdt->Header.Length);    Fadt->Header.Checksum = 0;    Fadt->Header.Checksum =  (UINT8) -AcpiTbChecksum (        (void *) Fadt, Fadt->Header.Length);}
开发者ID:LauraBerry,项目名称:A2cpsc457,代码行数:40,


示例6: acpi_tb_find_rsdp

acpi_statusacpi_tb_find_rsdp (	struct acpi_table_desc          *table_info,	u32                             flags){	u8                              *table_ptr;	u8                              *mem_rover;	u64                             phys_addr;	acpi_status                     status = AE_OK;	ACPI_FUNCTION_TRACE ("tb_find_rsdp");	/*	 * Scan supports either 1) Logical addressing or 2) Physical addressing	 */	if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) {		/*		 * 1) Search EBDA (low memory) paragraphs		 */		status = acpi_os_map_memory ((u64) ACPI_LO_RSDP_WINDOW_BASE, ACPI_LO_RSDP_WINDOW_SIZE,				  (void *) &table_ptr);		if (ACPI_FAILURE (status)) {			ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X/n",				ACPI_LO_RSDP_WINDOW_BASE, ACPI_LO_RSDP_WINDOW_SIZE));			return_ACPI_STATUS (status);		}		mem_rover = acpi_tb_scan_memory_for_rsdp (table_ptr, ACPI_LO_RSDP_WINDOW_SIZE);		acpi_os_unmap_memory (table_ptr, ACPI_LO_RSDP_WINDOW_SIZE);		if (mem_rover) {			/* Found it, return the physical address */			phys_addr = ACPI_LO_RSDP_WINDOW_BASE;			phys_addr += ACPI_PTR_DIFF (mem_rover,table_ptr);			table_info->physical_address = phys_addr;			return_ACPI_STATUS (AE_OK);		}		/*		 * 2) Search upper memory: 16-byte boundaries in E0000h-F0000h		 */		status = acpi_os_map_memory ((u64) ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE,				  (void *) &table_ptr);		if (ACPI_FAILURE (status)) {			ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X/n",				ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));			return_ACPI_STATUS (status);		}		mem_rover = acpi_tb_scan_memory_for_rsdp (table_ptr, ACPI_HI_RSDP_WINDOW_SIZE);		acpi_os_unmap_memory (table_ptr, ACPI_HI_RSDP_WINDOW_SIZE);		if (mem_rover) {			/* Found it, return the physical address */			phys_addr = ACPI_HI_RSDP_WINDOW_BASE;			phys_addr += ACPI_PTR_DIFF (mem_rover, table_ptr);			table_info->physical_address = phys_addr;			return_ACPI_STATUS (AE_OK);		}	}	/*	 * Physical addressing	 */	else {		/*		 * 1) Search EBDA (low memory) paragraphs		 */		mem_rover = acpi_tb_scan_memory_for_rsdp (ACPI_PHYSADDR_TO_PTR (ACPI_LO_RSDP_WINDOW_BASE),				  ACPI_LO_RSDP_WINDOW_SIZE);		if (mem_rover) {			/* Found it, return the physical address */			table_info->physical_address = ACPI_TO_INTEGER (mem_rover);			return_ACPI_STATUS (AE_OK);		}		/*		 * 2) Search upper memory: 16-byte boundaries in E0000h-F0000h		 */		mem_rover = acpi_tb_scan_memory_for_rsdp (ACPI_PHYSADDR_TO_PTR (ACPI_HI_RSDP_WINDOW_BASE),				  ACPI_HI_RSDP_WINDOW_SIZE);		if (mem_rover) {			/* Found it, return the physical address */			table_info->physical_address = ACPI_TO_INTEGER (mem_rover);			return_ACPI_STATUS (AE_OK);		}	}	/* RSDP signature was not found */	return_ACPI_STATUS (AE_NOT_FOUND);}
开发者ID:iPodLinux,项目名称:linux-2.4.24-ipod,代码行数:100,


示例7: AcpiExLoadOp

//.........这里部分代码省略.........        if (ObjDesc->Buffer.Length < sizeof (ACPI_TABLE_HEADER))        {            return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);        }        /* Get the actual table length from the table header */        Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ObjDesc->Buffer.Pointer);        Length = Table->Length;        /* Table cannot extend beyond the buffer */        if (Length > ObjDesc->Buffer.Length)        {            return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);        }        if (Length < sizeof (ACPI_TABLE_HEADER))        {            return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);        }        /*         * Copy the table from the buffer because the buffer could be modified         * or even deleted in the future         */        TableDesc.Pointer = ACPI_ALLOCATE (Length);        if (!TableDesc.Pointer)        {            return_ACPI_STATUS (AE_NO_MEMORY);        }        ACPI_MEMCPY (TableDesc.Pointer, Table, Length);        TableDesc.Address = ACPI_TO_INTEGER (TableDesc.Pointer);        break;    default:        return_ACPI_STATUS (AE_AML_OPERAND_TYPE);    }    /* Validate table checksum (will not get validated in TbAddTable) */    Status = AcpiTbVerifyChecksum (TableDesc.Pointer, Length);    if (ACPI_FAILURE (Status))    {        ACPI_FREE (TableDesc.Pointer);        return_ACPI_STATUS (Status);    }    /* Complete the table descriptor */    TableDesc.Length = Length;    TableDesc.Flags = ACPI_TABLE_ORIGIN_ALLOCATED;    /* Install the new table into the local data structures */    Status = AcpiTbAddTable (&TableDesc, &TableIndex);    if (ACPI_FAILURE (Status))    {        /* Delete allocated table buffer */        AcpiTbDeleteTable (&TableDesc);        return_ACPI_STATUS (Status);    }
开发者ID:RyanLucchese,项目名称:rumpkernel-netbsd-src,代码行数:66,


示例8: acpi_ns_root_initialize

acpi_status acpi_ns_root_initialize(void){	acpi_status status;	const struct acpi_predefined_names *init_val = NULL;	struct acpi_namespace_node *new_node;	union acpi_operand_object *obj_desc;	acpi_string val = NULL;	ACPI_FUNCTION_TRACE(ns_root_initialize);	status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);	if (ACPI_FAILURE(status)) {		return_ACPI_STATUS(status);	}	if (acpi_gbl_root_node) {		status = AE_OK;		goto unlock_and_exit;	}	acpi_gbl_root_node = &acpi_gbl_root_node_struct;		ACPI_DEBUG_PRINT((ACPI_DB_INFO,			  "Entering predefined entries into namespace/n"));	for (init_val = acpi_gbl_pre_defined_names; init_val->name; init_val++) {				if (!ACPI_STRCMP(init_val->name, "_OSI")		    && !acpi_gbl_create_osi_method) {			continue;		}		status = acpi_ns_lookup(NULL, init_val->name, init_val->type,					ACPI_IMODE_LOAD_PASS2,					ACPI_NS_NO_UPSEARCH, NULL, &new_node);		if (ACPI_FAILURE(status) || (!new_node)) {				ACPI_EXCEPTION((AE_INFO, status,					"Could not create predefined name %s",					init_val->name));		}		if (init_val->val) {			status = acpi_os_predefined_override(init_val, &val);			if (ACPI_FAILURE(status)) {				ACPI_ERROR((AE_INFO,					    "Could not override predefined %s",					    init_val->name));			}			if (!val) {				val = init_val->val;			}			obj_desc =			    acpi_ut_create_internal_object(init_val->type);			if (!obj_desc) {				status = AE_NO_MEMORY;				goto unlock_and_exit;			}			switch (init_val->type) {			case ACPI_TYPE_METHOD:				obj_desc->method.param_count =				    (u8) ACPI_TO_INTEGER(val);				obj_desc->common.flags |= AOPOBJ_DATA_VALID;#if defined (ACPI_ASL_COMPILER)								new_node->value = obj_desc->method.param_count;#else								obj_desc->method.info_flags =				    ACPI_METHOD_INTERNAL_ONLY;				obj_desc->method.dispatch.implementation =				    acpi_ut_osi_implementation;#endif				break;			case ACPI_TYPE_INTEGER:				obj_desc->integer.value = ACPI_TO_INTEGER(val);				break;			case ACPI_TYPE_STRING:								obj_desc->string.length =				    (u32) ACPI_STRLEN(val);				obj_desc->string.pointer = val;				obj_desc->common.flags |= AOPOBJ_STATIC_POINTER;				break;//.........这里部分代码省略.........
开发者ID:DirtyDroidX,项目名称:android_kernel_htc_m8ul,代码行数:101,


示例9: AcpiDsEvalTableRegionOperands

ACPI_STATUSAcpiDsEvalTableRegionOperands (    ACPI_WALK_STATE         *WalkState,    ACPI_PARSE_OBJECT       *Op){    ACPI_STATUS             Status;    ACPI_OPERAND_OBJECT     *ObjDesc;    ACPI_OPERAND_OBJECT     **Operand;    ACPI_NAMESPACE_NODE     *Node;    ACPI_PARSE_OBJECT       *NextOp;    UINT32                  TableIndex;    ACPI_TABLE_HEADER       *Table;    ACPI_FUNCTION_TRACE_PTR (DsEvalTableRegionOperands, Op);    /*     * This is where we evaluate the Signature string, OemId string,     * and OemTableId string of the Data Table Region declaration     */    Node =  Op->Common.Node;    /* NextOp points to Signature string op */    NextOp = Op->Common.Value.Arg;    /*     * Evaluate/create the Signature string, OemId string,     * and OemTableId string operands     */    Status = AcpiDsCreateOperands (WalkState, NextOp);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    /*     * Resolve the Signature string, OemId string,     * and OemTableId string operands     */    Status = AcpiExResolveOperands (Op->Common.AmlOpcode,                                    ACPI_WALK_OPERANDS, WalkState);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    Operand = &WalkState->Operands[0];    /* Find the ACPI table */    Status = AcpiTbFindTable (Operand[0]->String.Pointer,                              Operand[1]->String.Pointer, Operand[2]->String.Pointer,                              &TableIndex);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    AcpiUtRemoveReference (Operand[0]);    AcpiUtRemoveReference (Operand[1]);    AcpiUtRemoveReference (Operand[2]);    Status = AcpiGetTableByIndex (TableIndex, &Table);    if (ACPI_FAILURE (Status))    {        return_ACPI_STATUS (Status);    }    ObjDesc = AcpiNsGetAttachedObject (Node);    if (!ObjDesc)    {        return_ACPI_STATUS (AE_NOT_EXIST);    }    ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS) ACPI_TO_INTEGER (Table);    ObjDesc->Region.Length = Table->Length;    ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X/n",                       ObjDesc,                       ACPI_FORMAT_NATIVE_UINT (ObjDesc->Region.Address),                       ObjDesc->Region.Length));    /* Now the address and length are valid for this opregion */    ObjDesc->Region.Flags |= AOPOBJ_DATA_VALID;    return_ACPI_STATUS (Status);}
开发者ID:michas2,项目名称:l4re-snapshot,代码行数:90,


示例10: TrDoSwitch

static voidTrDoSwitch (    ACPI_PARSE_OBJECT       *StartNode){    ACPI_PARSE_OBJECT       *Next;    ACPI_PARSE_OBJECT       *CaseOp = NULL;    ACPI_PARSE_OBJECT       *CaseBlock = NULL;    ACPI_PARSE_OBJECT       *DefaultOp = NULL;    ACPI_PARSE_OBJECT       *CurrentParentNode;    ACPI_PARSE_OBJECT       *Conditional = NULL;    ACPI_PARSE_OBJECT       *Predicate;    ACPI_PARSE_OBJECT       *Peer;    ACPI_PARSE_OBJECT       *NewOp;    ACPI_PARSE_OBJECT       *NewOp2;    ACPI_PARSE_OBJECT       *MethodOp;    ACPI_PARSE_OBJECT       *StoreOp;    ACPI_PARSE_OBJECT       *BreakOp;    ACPI_PARSE_OBJECT       *BufferOp;    char                    *PredicateValueName;    UINT16                  Index;    UINT32                  Btype;    /* Start node is the Switch() node */    CurrentParentNode  = StartNode;    /* Create a new temp name of the form _T_x */    PredicateValueName = TrAmlGetNextTempName (StartNode, &AslGbl_TempCount);    if (!PredicateValueName)    {        return;    }    /* First child is the Switch() predicate */    Next = StartNode->Asl.Child;    /*     * Examine the return type of the Switch Value -     * must be Integer/Buffer/String     */    Index = (UINT16) (Next->Asl.ParseOpcode - ASL_PARSE_OPCODE_BASE);    Btype = AslKeywordMapping[Index].AcpiBtype;    if ((Btype != ACPI_BTYPE_INTEGER) &&        (Btype != ACPI_BTYPE_STRING)  &&        (Btype != ACPI_BTYPE_BUFFER))    {        AslError (ASL_WARNING, ASL_MSG_SWITCH_TYPE, Next, NULL);        Btype = ACPI_BTYPE_INTEGER;    }    /* CASE statements start at next child */    Peer = Next->Asl.Next;    while (Peer)    {        Next = Peer;        Peer = Next->Asl.Next;        if (Next->Asl.ParseOpcode == PARSEOP_CASE)        {            if (CaseOp)            {                /* Add an ELSE to complete the previous CASE */                NewOp = TrCreateLeafOp (PARSEOP_ELSE);                NewOp->Asl.Parent = Conditional->Asl.Parent;                TrAmlInitLineNumbers (NewOp, NewOp->Asl.Parent);                /* Link ELSE node as a peer to the previous IF */                TrAmlInsertPeer (Conditional, NewOp);                CurrentParentNode = NewOp;            }            CaseOp = Next;            Conditional = CaseOp;            CaseBlock = CaseOp->Asl.Child->Asl.Next;            Conditional->Asl.Child->Asl.Next = NULL;            Predicate = CaseOp->Asl.Child;            if ((Predicate->Asl.ParseOpcode == PARSEOP_PACKAGE) ||                (Predicate->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE))            {                /*                 * Convert the package declaration to this form:                 *                 * If (LNotEqual (Match (Package(<size>){<data>},                 *                       MEQ, _T_x, MTR, Zero, Zero), Ones))                 */                NewOp2              = TrCreateLeafOp (PARSEOP_MATCHTYPE_MEQ);                Predicate->Asl.Next = NewOp2;                TrAmlInitLineNumbers (NewOp2, Conditional);                NewOp               = NewOp2;                NewOp2              = TrCreateValuedLeafOp (PARSEOP_NAMESTRING,                                        (UINT64) ACPI_TO_INTEGER (PredicateValueName));                NewOp->Asl.Next     = NewOp2;//.........这里部分代码省略.........
开发者ID:kusumi,项目名称:DragonFlyBSD,代码行数:101,


示例11: acpi_tb_find_rsdp

//.........这里部分代码省略.........			mem_rover = acpi_tb_scan_memory_for_rsdp(table_ptr,								 ACPI_EBDA_WINDOW_SIZE);			acpi_os_unmap_memory(table_ptr, ACPI_EBDA_WINDOW_SIZE);			if (mem_rover) {				/* Return the physical address */				physical_address +=				    ACPI_PTR_DIFF(mem_rover, table_ptr);				table_info->physical_address =				    (acpi_physical_address) physical_address;				return_ACPI_STATUS(AE_OK);			}		}		/*		 * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh		 */		status = acpi_os_map_memory((acpi_physical_address)					    ACPI_HI_RSDP_WINDOW_BASE,					    ACPI_HI_RSDP_WINDOW_SIZE,					    (void *)&table_ptr);		if (ACPI_FAILURE(status)) {			ACPI_DEBUG_PRINT((ACPI_DB_ERROR,					  "Could not map memory at %8.8X for length %X/n",					  ACPI_HI_RSDP_WINDOW_BASE,					  ACPI_HI_RSDP_WINDOW_SIZE));			return_ACPI_STATUS(status);		}		mem_rover =		    acpi_tb_scan_memory_for_rsdp(table_ptr,						 ACPI_HI_RSDP_WINDOW_SIZE);		acpi_os_unmap_memory(table_ptr, ACPI_HI_RSDP_WINDOW_SIZE);		if (mem_rover) {			/* Return the physical address */			physical_address =			    ACPI_HI_RSDP_WINDOW_BASE + ACPI_PTR_DIFF(mem_rover,								     table_ptr);			table_info->physical_address =			    (acpi_physical_address) physical_address;			return_ACPI_STATUS(AE_OK);		}	}	/*	 * Physical addressing	 */	else {		/* 1a) Get the location of the EBDA */		ACPI_MOVE_16_TO_32(&physical_address, ACPI_EBDA_PTR_LOCATION);		physical_address <<= 4;	/* Convert segment to physical address */		/* EBDA present? */		if (physical_address > 0x400) {			/*			 * 1b) Search EBDA paragraphs (EBDa is required to be a minimum of			 *     1_k length)			 */			mem_rover =			    acpi_tb_scan_memory_for_rsdp(ACPI_PHYSADDR_TO_PTR							 (physical_address),							 ACPI_EBDA_WINDOW_SIZE);			if (mem_rover) {				/* Return the physical address */				table_info->physical_address =				    ACPI_TO_INTEGER(mem_rover);				return_ACPI_STATUS(AE_OK);			}		}		/* 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh */		mem_rover =		    acpi_tb_scan_memory_for_rsdp(ACPI_PHYSADDR_TO_PTR						 (ACPI_HI_RSDP_WINDOW_BASE),						 ACPI_HI_RSDP_WINDOW_SIZE);		if (mem_rover) {			/* Found it, return the physical address */			table_info->physical_address =			    ACPI_TO_INTEGER(mem_rover);			return_ACPI_STATUS(AE_OK);		}	}	/* A valid RSDP was not found */	ACPI_REPORT_ERROR(("No valid RSDP was found/n"));	return_ACPI_STATUS(AE_NOT_FOUND);}
开发者ID:BackupTheBerlios,项目名称:tew632-brp-svn,代码行数:101,


示例12: LsAmlOffsetWalk

ACPI_STATUSLsAmlOffsetWalk (    ACPI_PARSE_OBJECT       *Op,    UINT32                  Level,    void                    *Context){    UINT32                  FileId = (UINT32) ACPI_TO_INTEGER (Context);    ACPI_NAMESPACE_NODE     *Node;    UINT32                  Length;    UINT32                  NamepathOffset;    UINT32                  DataOffset;    ACPI_PARSE_OBJECT       *NextOp;    /* Ignore actual data blocks for resource descriptors */    if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DATA)    {        return (AE_OK); /* Do NOT update the global AML offset */    }    /* We are only interested in named objects (have a namespace node) */    Node = Op->Asl.Node;    if (!Node)    {        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;        return (AE_OK);    }    /* Named resource descriptor (has a descriptor tag) */    if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE) &&        (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC))    {        LsEmitOffsetTableEntry (FileId, Node, 0, Gbl_CurrentAmlOffset,            Op->Asl.ParseOpName, 0, Op->Asl.Extra, AML_BUFFER_OP);        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;        return (AE_OK);    }    switch (Op->Asl.AmlOpcode)    {    case AML_NAME_OP:        /* Named object -- Name (NameString, DataRefObject) */        if (!Op->Asl.Child)        {            FlPrintFile (FileId, "%s NO CHILD!/n", MsgBuffer);            return (AE_OK);        }        Length = Op->Asl.FinalAmlLength;        NamepathOffset = Gbl_CurrentAmlOffset + Length;        /* Get to the NameSeg/NamePath Op (and length of the name) */        Op = Op->Asl.Child;        /* Get offset of last nameseg and the actual data */        NamepathOffset = Gbl_CurrentAmlOffset + Length +            (Op->Asl.FinalAmlLength - ACPI_NAME_SIZE);        DataOffset = Gbl_CurrentAmlOffset + Length +            Op->Asl.FinalAmlLength;        /* Get actual value associated with the name */        Op = Op->Asl.Next;        switch (Op->Asl.AmlOpcode)        {        case AML_BYTE_OP:        case AML_WORD_OP:        case AML_DWORD_OP:        case AML_QWORD_OP:            /* The +1 is to handle the integer size prefix (opcode) */            LsEmitOffsetTableEntry (FileId, Node, NamepathOffset, (DataOffset + 1),                Op->Asl.ParseOpName, Op->Asl.Value.Integer,                (UINT8) Op->Asl.AmlOpcode, AML_NAME_OP);            break;        case AML_ONE_OP:        case AML_ONES_OP:        case AML_ZERO_OP:            /* For these, offset will point to the opcode */            LsEmitOffsetTableEntry (FileId, Node, NamepathOffset, DataOffset,                Op->Asl.ParseOpName, Op->Asl.Value.Integer,                (UINT8) Op->Asl.AmlOpcode, AML_NAME_OP);            break;        case AML_PACKAGE_OP:        case AML_VAR_PACKAGE_OP://.........这里部分代码省略.........
开发者ID:2asoft,项目名称:freebsd,代码行数:101,


示例13: AcpiNsRootInitialize

//.........这里部分代码省略.........            Status = AcpiOsPredefinedOverride (InitVal, &Val);            if (ACPI_FAILURE (Status))            {                ACPI_ERROR ((AE_INFO,                    "Could not override predefined %s",                    InitVal->Name));            }            if (!Val)            {                Val = InitVal->Val;            }            /*             * Entry requests an initial value, allocate a             * descriptor for it.             */            ObjDesc = AcpiUtCreateInternalObject (InitVal->Type);            if (!ObjDesc)            {                Status = AE_NO_MEMORY;                goto UnlockAndExit;            }            /*             * Convert value string from table entry to             * internal representation. Only types actually             * used for initial values are implemented here.             */            switch (InitVal->Type)            {            case ACPI_TYPE_METHOD:                ObjDesc->Method.ParamCount = (UINT8) ACPI_TO_INTEGER (Val);                ObjDesc->Common.Flags |= AOPOBJ_DATA_VALID;#if defined (ACPI_ASL_COMPILER)                /* Save the parameter count for the iASL compiler */                NewNode->Value = ObjDesc->Method.ParamCount;#else                /* Mark this as a very SPECIAL method */                ObjDesc->Method.InfoFlags = ACPI_METHOD_INTERNAL_ONLY;                ObjDesc->Method.Dispatch.Implementation = AcpiUtOsiImplementation;#endif                break;            case ACPI_TYPE_INTEGER:                ObjDesc->Integer.Value = ACPI_TO_INTEGER (Val);                break;            case ACPI_TYPE_STRING:                /* Build an object around the static string */                ObjDesc->String.Length = (UINT32) strlen (Val);                ObjDesc->String.Pointer = Val;                ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;                break;            case ACPI_TYPE_MUTEX:                ObjDesc->Mutex.Node = NewNode;
开发者ID:BarrelfishOS,项目名称:barrelfish,代码行数:67,


示例14: AeExceptionHandler

ACPI_STATUSAeExceptionHandler (    ACPI_STATUS             AmlStatus,    ACPI_NAME               Name,    UINT16                  Opcode,    UINT32                  AmlOffset,    void                    *Context){    ACPI_STATUS             NewAmlStatus = AmlStatus;    ACPI_STATUS             Status;    ACPI_BUFFER             ReturnObj;    ACPI_OBJECT_LIST        ArgList;    ACPI_OBJECT             Arg[3];    const char              *Exception;    Exception = AcpiFormatException (AmlStatus);    AcpiOsPrintf ("[AcpiExec] Exception %s during execution ", Exception);    if (Name)    {        AcpiOsPrintf ("of method [%4.4s]", (char *) &Name);    }    else    {        AcpiOsPrintf ("at module level (table load)");    }    AcpiOsPrintf (" Opcode [%s] @%X/n", AcpiPsGetOpcodeName (Opcode), AmlOffset);    /*     * Invoke the _ERR method if present     *     * Setup parameter object     */    ArgList.Count = 3;    ArgList.Pointer = Arg;    Arg[0].Type = ACPI_TYPE_INTEGER;    Arg[0].Integer.Value = AmlStatus;    Arg[1].Type = ACPI_TYPE_STRING;    Arg[1].String.Pointer = ACPI_CAST_PTR (char, Exception);    Arg[1].String.Length = ACPI_STRLEN (Exception);    Arg[2].Type = ACPI_TYPE_INTEGER;    Arg[2].Integer.Value = ACPI_TO_INTEGER (AcpiOsGetThreadId());    /* Setup return buffer */    ReturnObj.Pointer = NULL;    ReturnObj.Length = ACPI_ALLOCATE_BUFFER;    Status = AcpiEvaluateObject (NULL, "//_ERR", &ArgList, &ReturnObj);    if (ACPI_SUCCESS (Status))    {        if (ReturnObj.Pointer)        {            /* Override original status */            NewAmlStatus = (ACPI_STATUS)                ((ACPI_OBJECT *) ReturnObj.Pointer)->Integer.Value;            AcpiOsFree (ReturnObj.Pointer);        }    }    else if (Status != AE_NOT_FOUND)    {        AcpiOsPrintf ("[AcpiExec] Could not execute _ERR method, %s/n",            AcpiFormatException (Status));    }    /* Global override */    if (AcpiGbl_IgnoreErrors)    {        NewAmlStatus = AE_OK;    }    if (NewAmlStatus != AmlStatus)    {        AcpiOsPrintf ("[AcpiExec] Exception override, new status %s/n",            AcpiFormatException (NewAmlStatus));    }    return (NewAmlStatus);}
开发者ID:iversonjimmy,项目名称:acer_cloud_wifi_copy,代码行数:85,


示例15: AcpiTbFindRsdp

ACPI_STATUSAcpiTbFindRsdp (    ACPI_TABLE_DESC         *TableInfo,    UINT32                  Flags){    UINT8                   *TablePtr;    UINT8                   *MemRover;    UINT64                  PhysAddr;    ACPI_STATUS             Status = AE_OK;    ACPI_FUNCTION_TRACE ("TbFindRsdp");    /*     * Scan supports either 1) Logical addressing or 2) Physical addressing     */    if ((Flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING)    {        /*         * 1) Search EBDA (low memory) paragraphs         */        Status = AcpiOsMapMemory ((UINT64) ACPI_LO_RSDP_WINDOW_BASE, ACPI_LO_RSDP_WINDOW_SIZE,                                    (void **) &TablePtr);        if (ACPI_FAILURE (Status))        {            ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X/n",                ACPI_LO_RSDP_WINDOW_BASE, ACPI_LO_RSDP_WINDOW_SIZE));            return_ACPI_STATUS (Status);        }        MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_LO_RSDP_WINDOW_SIZE);        AcpiOsUnmapMemory (TablePtr, ACPI_LO_RSDP_WINDOW_SIZE);        if (MemRover)        {            /* Found it, return the physical address */            PhysAddr = ACPI_LO_RSDP_WINDOW_BASE;            PhysAddr += ACPI_PTR_DIFF (MemRover,TablePtr);            TableInfo->PhysicalAddress = PhysAddr;            return_ACPI_STATUS (AE_OK);        }        /*         * 2) Search upper memory: 16-byte boundaries in E0000h-F0000h         */        Status = AcpiOsMapMemory ((UINT64) ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE,                                    (void **) &TablePtr);        if (ACPI_FAILURE (Status))        {            ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X/n",                ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));            return_ACPI_STATUS (Status);        }        MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);        AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);        if (MemRover)        {            /* Found it, return the physical address */            PhysAddr = ACPI_HI_RSDP_WINDOW_BASE;            PhysAddr += ACPI_PTR_DIFF (MemRover, TablePtr);            TableInfo->PhysicalAddress = PhysAddr;            return_ACPI_STATUS (AE_OK);        }    }    /*     * Physical addressing     */    else    {        /*         * 1) Search EBDA (low memory) paragraphs         */        MemRover = AcpiTbScanMemoryForRsdp (ACPI_PHYSADDR_TO_PTR (ACPI_LO_RSDP_WINDOW_BASE),                        ACPI_LO_RSDP_WINDOW_SIZE);        if (MemRover)        {            /* Found it, return the physical address */            TableInfo->PhysicalAddress = ACPI_TO_INTEGER (MemRover);            return_ACPI_STATUS (AE_OK);        }        /*         * 2) Search upper memory: 16-byte boundaries in E0000h-F0000h         */        MemRover = AcpiTbScanMemoryForRsdp (ACPI_PHYSADDR_TO_PTR (ACPI_HI_RSDP_WINDOW_BASE),                        ACPI_HI_RSDP_WINDOW_SIZE);        if (MemRover)        {            /* Found it, return the physical address */            TableInfo->PhysicalAddress = ACPI_TO_INTEGER (MemRover);//.........这里部分代码省略.........
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:101,


示例16: acpi_ds_eval_table_region_operands

acpi_statusacpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,				   union acpi_parse_object *op){	acpi_status status;	union acpi_operand_object *obj_desc;	union acpi_operand_object **operand;	struct acpi_namespace_node *node;	union acpi_parse_object *next_op;	u32 table_index;	struct acpi_table_header *table;	ACPI_FUNCTION_TRACE_PTR(ds_eval_table_region_operands, op);	/*	 * This is where we evaluate the signature_string and oem_iDString	 * and oem_table_iDString of the data_table_region declaration	 */	node = op->common.node;	/* next_op points to signature_string op */	next_op = op->common.value.arg;	/*	 * Evaluate/create the signature_string and oem_iDString	 * and oem_table_iDString operands	 */	status = acpi_ds_create_operands(walk_state, next_op);	if (ACPI_FAILURE(status)) {		return_ACPI_STATUS(status);	}	/*	 * Resolve the signature_string and oem_iDString	 * and oem_table_iDString operands	 */	status = acpi_ex_resolve_operands(op->common.aml_opcode,					  ACPI_WALK_OPERANDS, walk_state);	if (ACPI_FAILURE(status)) {		return_ACPI_STATUS(status);	}	operand = &walk_state->operands[0];	/* Find the ACPI table */	status = acpi_tb_find_table(operand[0]->string.pointer,				    operand[1]->string.pointer,				    operand[2]->string.pointer, &table_index);	if (ACPI_FAILURE(status)) {		return_ACPI_STATUS(status);	}	acpi_ut_remove_reference(operand[0]);	acpi_ut_remove_reference(operand[1]);	acpi_ut_remove_reference(operand[2]);	status = acpi_get_table_by_index(table_index, &table);	if (ACPI_FAILURE(status)) {		return_ACPI_STATUS(status);	}	obj_desc = acpi_ns_get_attached_object(node);	if (!obj_desc) {		return_ACPI_STATUS(AE_NOT_EXIST);	}	obj_desc->region.address =	    (acpi_physical_address) ACPI_TO_INTEGER(table);	obj_desc->region.length = table->length;	ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X/n",			  obj_desc,			  ACPI_FORMAT_NATIVE_UINT(obj_desc->region.address),			  obj_desc->region.length));	/* Now the address and length are valid for this opregion */	obj_desc->region.flags |= AOPOBJ_DATA_VALID;	return_ACPI_STATUS(status);}
开发者ID:ARMWorks,项目名称:FA_2451_Linux_Kernel,代码行数:83,


示例17: LsAmlOffsetWalk

ACPI_STATUSLsAmlOffsetWalk (    ACPI_PARSE_OBJECT       *Op,    UINT32                  Level,    void                    *Context){    UINT32                  FileId = (UINT32) ACPI_TO_INTEGER (Context);    ACPI_NAMESPACE_NODE     *Node;    UINT32                  Length;    UINT32                  OffsetOfOpcode;    ACPI_PARSE_OBJECT       *AddressOp;    /* Ignore actual data blocks for resource descriptors */    if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DATA)    {        return (AE_OK); /* Do NOT update the global AML offset */    }    /* We are only interested in named objects (have a namespace node) */    Node = Op->Asl.Node;    if (!Node)    {        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;        return (AE_OK);    }    /* Named resource descriptor (has a descriptor tag) */    if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE) &&        (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC))    {        LsEmitOffsetTableEntry (FileId, Node, Gbl_CurrentAmlOffset,            Op->Asl.FinalAmlLength, Op->Asl.ParseOpName, 0, Op->Asl.Extra);    }    /* Named object -- Name (NameString, DataRefObject) */    else if (Op->Asl.AmlOpcode == AML_NAME_OP)    {        if (!Op->Asl.Child)        {            FlPrintFile (FileId, "%s NO CHILD!/n", MsgBuffer);            return (AE_OK);        }        Length = Op->Asl.FinalAmlLength;        /* Get to the NameSeg/NamePath Op (and length of the name) */        Op = Op->Asl.Child;        OffsetOfOpcode = Length + Op->Asl.FinalAmlLength;        /* Get actual value associated with the name */        Op = Op->Asl.Next;        switch (Op->Asl.AmlOpcode)        {        /*         * We are only interested in integer constants that can be changed         * at boot time. Note, the One/Ones/Zero opcodes are considered         * non-changeable, so we ignore them here.         */        case AML_BYTE_OP:        case AML_WORD_OP:        case AML_DWORD_OP:        case AML_QWORD_OP:            /* The +1/-1 is to handle the integer size prefix (opcode) */            LsEmitOffsetTableEntry (FileId, Node,                (Gbl_CurrentAmlOffset + OffsetOfOpcode + 1),                (Op->Asl.FinalAmlLength - 1), Op->Asl.ParseOpName,                Op->Asl.Value.Integer, (UINT8) Op->Asl.AmlOpcode);            break;        default:            break;        }        Gbl_CurrentAmlOffset += Length;        return (AE_OK);    }    /* OperationRegion (NameString, RegionSpace, RegionOffset, RegionLength) */    else if (Op->Asl.AmlOpcode == AML_REGION_OP)    {        Length = Op->Asl.FinalAmlLength;        /* Get the name/namepath node */        AddressOp = Op->Asl.Child;        OffsetOfOpcode = Length + AddressOp->Asl.FinalAmlLength + 1;        /* Get the SpaceId node, then the Offset (address) node */        AddressOp = AddressOp->Asl.Next;//.........这里部分代码省略.........
开发者ID:rchander,项目名称:freebsd,代码行数:101,


示例18: acpi_ns_root_initialize

//.........这里部分代码省略.........		 * initial value, create the initial value.		 */		if (init_val->val) {			status = acpi_os_predefined_override(init_val, &val);			if (ACPI_FAILURE(status)) {				ACPI_ERROR((AE_INFO,					    "Could not override predefined %s",					    init_val->name));			}			if (!val) {				val = init_val->val;			}			/*			 * Entry requests an initial value, allocate a			 * descriptor for it.			 */			obj_desc =			    acpi_ut_create_internal_object(init_val->type);			if (!obj_desc) {				status = AE_NO_MEMORY;				goto unlock_and_exit;			}			/*			 * Convert value string from table entry to			 * internal representation. Only types actually			 * used for initial values are implemented here.			 */			switch (init_val->type) {			case ACPI_TYPE_METHOD:				obj_desc->method.param_count =				    (u8) ACPI_TO_INTEGER(val);				obj_desc->common.flags |= AOPOBJ_DATA_VALID;#if defined (ACPI_ASL_COMPILER)				/* Save the parameter count for the i_aSL compiler */				new_node->value = obj_desc->method.param_count;#else				/* Mark this as a very SPECIAL method */				obj_desc->method.method_flags =				    AML_METHOD_INTERNAL_ONLY;				obj_desc->method.implementation =				    acpi_ut_osi_implementation;#endif				break;			case ACPI_TYPE_INTEGER:				obj_desc->integer.value = ACPI_TO_INTEGER(val);				break;			case ACPI_TYPE_STRING:				/*				 * Build an object around the static string				 */				obj_desc->string.length =				    (u32) ACPI_STRLEN(val);				obj_desc->string.pointer = val;				obj_desc->common.flags |= AOPOBJ_STATIC_POINTER;				break;
开发者ID:10x-Amin,项目名称:x10_Th_kernel,代码行数:67,


示例19: AcpiDbMethodThread

static void ACPI_SYSTEM_XFACEAcpiDbMethodThread (    void                    *Context){    ACPI_STATUS             Status;    ACPI_DB_METHOD_INFO     *Info = Context;    ACPI_DB_METHOD_INFO     LocalInfo;    UINT32                  i;    UINT8                   Allow;    ACPI_BUFFER             ReturnObj;    /*     * AcpiGbl_DbMethodInfo.Arguments will be passed as method arguments.     * Prevent AcpiGbl_DbMethodInfo from being modified by multiple threads     * concurrently.     *     * Note: The arguments we are passing are used by the ASL test suite     * (aslts). Do not change them without updating the tests.     */    (void) AcpiOsWaitSemaphore (Info->InfoGate, 1, ACPI_WAIT_FOREVER);    if (Info->InitArgs)    {        AcpiDbUInt32ToHexString (Info->NumCreated, Info->IndexOfThreadStr);        AcpiDbUInt32ToHexString (ACPI_TO_INTEGER (AcpiOsGetThreadId ()),            Info->IdOfThreadStr);    }    if (Info->Threads && (Info->NumCreated < Info->NumThreads))    {        Info->Threads[Info->NumCreated++] =            ACPI_TO_INTEGER (AcpiOsGetThreadId());    }    LocalInfo = *Info;    LocalInfo.Args = LocalInfo.Arguments;    LocalInfo.Arguments[0] = LocalInfo.NumThreadsStr;    LocalInfo.Arguments[1] = LocalInfo.IdOfThreadStr;    LocalInfo.Arguments[2] = LocalInfo.IndexOfThreadStr;    LocalInfo.Arguments[3] = NULL;    (void) AcpiOsSignalSemaphore (Info->InfoGate, 1);    for (i = 0; i < Info->NumLoops; i++)    {        Status = AcpiDbExecuteMethod (&LocalInfo, &ReturnObj);        if (ACPI_FAILURE (Status))        {            AcpiOsPrintf ("%s During execution of %s at iteration %X/n",                AcpiFormatException (Status), Info->Pathname, i);            if (Status == AE_ABORT_METHOD)            {                break;            }        }#if 0        if ((i % 100) == 0)        {            AcpiOsPrintf ("%d executions, Thread 0x%x/n", i, AcpiOsGetThreadId ());        }        if (ReturnObj.Length)        {            AcpiOsPrintf ("Execution of %s returned object %p Buflen %X/n",                Info->Pathname, ReturnObj.Pointer, (UINT32) ReturnObj.Length);            AcpiDbDumpExternalObject (ReturnObj.Pointer, 1);        }#endif    }    /* Signal our completion */    Allow = 0;    (void) AcpiOsWaitSemaphore (Info->ThreadCompleteGate, 1, ACPI_WAIT_FOREVER);    Info->NumCompleted++;    if (Info->NumCompleted == Info->NumThreads)    {        /* Do signal for main thread once only */        Allow = 1;    }    (void) AcpiOsSignalSemaphore (Info->ThreadCompleteGate, 1);    if (Allow)    {        Status = AcpiOsSignalSemaphore (Info->MainThreadGate, 1);        if (ACPI_FAILURE (Status))        {            AcpiOsPrintf ("Could not signal debugger thread sync semaphore, %s/n",                AcpiFormatException (Status));        }    }}
开发者ID:luciang,项目名称:haiku,代码行数:96,



注:本文中的ACPI_TO_INTEGER函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ACPI_TO_POINTER函数代码示例
C++ ACPI_SUCCESS函数代码示例
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1