Deleted Added
full compact
exoparg2.c (126372) exoparg2.c (129684)
1/******************************************************************************
2 *
3 * Module Name: exoparg2 - AML execution - opcodes with 2 arguments
1/******************************************************************************
2 *
3 * Module Name: exoparg2 - AML execution - opcodes with 2 arguments
4 * $Revision: 119 $
4 * $Revision: 121 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.

--- 154 unchanged lines hidden (view full) ---

167 ******************************************************************************/
168
169ACPI_STATUS
170AcpiExOpcode_2A_0T_0R (
171 ACPI_WALK_STATE *WalkState)
172{
173 ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
174 ACPI_NAMESPACE_NODE *Node;
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.

--- 154 unchanged lines hidden (view full) ---

167 ******************************************************************************/
168
169ACPI_STATUS
170AcpiExOpcode_2A_0T_0R (
171 ACPI_WALK_STATE *WalkState)
172{
173 ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
174 ACPI_NAMESPACE_NODE *Node;
175 UINT32 Value;
175 ACPI_STATUS Status = AE_OK;
176
177
178 ACPI_FUNCTION_TRACE_STR ("ExOpcode_2A_0T_0R",
179 AcpiPsGetOpcodeName (WalkState->Opcode));
180
181
182 /* Examine the opcode */
183
184 switch (WalkState->Opcode)
185 {
186 case AML_NOTIFY_OP: /* Notify (NotifyObject, NotifyValue) */
187
188 /* The first operand is a namespace node */
189
190 Node = (ACPI_NAMESPACE_NODE *) Operand[0];
191
176 ACPI_STATUS Status = AE_OK;
177
178
179 ACPI_FUNCTION_TRACE_STR ("ExOpcode_2A_0T_0R",
180 AcpiPsGetOpcodeName (WalkState->Opcode));
181
182
183 /* Examine the opcode */
184
185 switch (WalkState->Opcode)
186 {
187 case AML_NOTIFY_OP: /* Notify (NotifyObject, NotifyValue) */
188
189 /* The first operand is a namespace node */
190
191 Node = (ACPI_NAMESPACE_NODE *) Operand[0];
192
193 /* Second value is the notify value */
194
195 Value = (UINT32) Operand[1]->Integer.Value;
196
192 /* Notifies allowed on this object? */
193
194 if (!AcpiEvIsNotifyObject (Node))
195 {
197 /* Notifies allowed on this object? */
198
199 if (!AcpiEvIsNotifyObject (Node))
200 {
196 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unexpected notify object type [%s]\n",
201 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
202 "Unexpected notify object type [%s]\n",
197 AcpiUtGetTypeName (Node->Type)));
198
199 Status = AE_AML_OPERAND_TYPE;
200 break;
201 }
202
203 AcpiUtGetTypeName (Node->Type)));
204
205 Status = AE_AML_OPERAND_TYPE;
206 break;
207 }
208
209#ifdef ACPI_GPE_NOTIFY_CHECK
203 /*
210 /*
211 * GPE method wake/notify check. Here, we want to ensure that we
212 * don't receive any "DeviceWake" Notifies from a GPE _Lxx or _Exx
213 * GPE method during system runtime. If we do, the GPE is marked
214 * as "wake-only" and disabled.
215 *
216 * 1) Is the Notify() value == DeviceWake?
217 * 2) Is this a GPE deferred method? (An _Lxx or _Exx method)
218 * 3) Did the original GPE happen at system runtime?
219 * (versus during wake)
220 *
221 * If all three cases are true, this is a wake-only GPE that should
222 * be disabled at runtime.
223 */
224 if (Value == 2) /* DeviceWake */
225 {
226 Status = AcpiEvCheckForWakeOnlyGpe (WalkState->GpeEventInfo);
227 if (ACPI_FAILURE (Status))
228 {
229 /* AE_WAKE_ONLY_GPE only error, means ignore this notify */
230
231 return_ACPI_STATUS (AE_OK)
232 }
233 }
234#endif
235
236 /*
204 * Dispatch the notify to the appropriate handler
205 * NOTE: the request is queued for execution after this method
206 * completes. The notify handlers are NOT invoked synchronously
207 * from this thread -- because handlers may in turn run other
208 * control methods.
209 */
237 * Dispatch the notify to the appropriate handler
238 * NOTE: the request is queued for execution after this method
239 * completes. The notify handlers are NOT invoked synchronously
240 * from this thread -- because handlers may in turn run other
241 * control methods.
242 */
210 Status = AcpiEvQueueNotifyRequest (Node,
211 (UINT32) Operand[1]->Integer.Value);
243 Status = AcpiEvQueueNotifyRequest (Node, Value);
212 break;
213
214
215 default:
216
217 ACPI_REPORT_ERROR (("AcpiExOpcode_2A_0T_0R: Unknown opcode %X\n",
218 WalkState->Opcode));
219 Status = AE_AML_BAD_OPCODE;

--- 499 unchanged lines hidden ---
244 break;
245
246
247 default:
248
249 ACPI_REPORT_ERROR (("AcpiExOpcode_2A_0T_0R: Unknown opcode %X\n",
250 WalkState->Opcode));
251 Status = AE_AML_BAD_OPCODE;

--- 499 unchanged lines hidden ---