acpigen: Add methods for mutex operations
Tested on Linux 5.2: Dumped and decoded the ACPI tables using iasl. Change-Id: I79310b0f9e2297cf8428d11598935164caf95968 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37637 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
9fe3d692c7
commit
32bae49435
|
@ -403,6 +403,37 @@ void acpigen_write_opregion(struct opregion *opreg)
|
|||
acpigen_write_integer(opreg->regionlen);
|
||||
}
|
||||
|
||||
/*
|
||||
* Generate ACPI AML code for Mutex
|
||||
* Arg0: Pointer to name of mutex
|
||||
* Arg1: Initial value of mutex
|
||||
*/
|
||||
void acpigen_write_mutex(const char *name, const uint8_t flags)
|
||||
{
|
||||
/* MutexOp */
|
||||
acpigen_emit_ext_op(MUTEX_OP);
|
||||
/* NameString 4 chars only */
|
||||
acpigen_emit_simple_namestring(name);
|
||||
acpigen_emit_byte(flags);
|
||||
}
|
||||
|
||||
void acpigen_write_acquire(const char *name, const uint16_t val)
|
||||
{
|
||||
/* AcquireOp */
|
||||
acpigen_emit_ext_op(ACQUIRE_OP);
|
||||
/* NameString 4 chars only */
|
||||
acpigen_emit_simple_namestring(name);
|
||||
acpigen_emit_word(val);
|
||||
}
|
||||
|
||||
void acpigen_write_release(const char *name)
|
||||
{
|
||||
/* ReleaseOp */
|
||||
acpigen_emit_ext_op(RELEASE_OP);
|
||||
/* NameString 4 chars only */
|
||||
acpigen_emit_simple_namestring(name);
|
||||
}
|
||||
|
||||
static void acpigen_write_field_length(uint32_t len)
|
||||
{
|
||||
uint8_t i, j;
|
||||
|
|
|
@ -410,6 +410,21 @@ void acpigen_write_rom(void *bios, const size_t length);
|
|||
* length.
|
||||
*/
|
||||
void acpigen_write_opregion(struct opregion *opreg);
|
||||
/*
|
||||
* Generate ACPI AML code for Mutex
|
||||
* This function takes mutex name and initial value.
|
||||
*/
|
||||
void acpigen_write_mutex(const char *name, const uint8_t flags);
|
||||
/*
|
||||
* Generate ACPI AML code for Acquire
|
||||
* This function takes mutex name and privilege value.
|
||||
*/
|
||||
void acpigen_write_acquire(const char *name, const uint16_t val);
|
||||
/*
|
||||
* Generate ACPI AML code for Release
|
||||
* This function takes mutex name.
|
||||
*/
|
||||
void acpigen_write_release(const char *name);
|
||||
/*
|
||||
* Generate ACPI AML code for Field
|
||||
* This function takes input region name, fieldlist, count & flags.
|
||||
|
|
Loading…
Reference in New Issue