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);
|
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)
|
static void acpigen_write_field_length(uint32_t len)
|
||||||
{
|
{
|
||||||
uint8_t i, j;
|
uint8_t i, j;
|
||||||
|
|
|
@ -410,6 +410,21 @@ void acpigen_write_rom(void *bios, const size_t length);
|
||||||
* length.
|
* length.
|
||||||
*/
|
*/
|
||||||
void acpigen_write_opregion(struct opregion *opreg);
|
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
|
* Generate ACPI AML code for Field
|
||||||
* This function takes input region name, fieldlist, count & flags.
|
* This function takes input region name, fieldlist, count & flags.
|
||||||
|
|
Loading…
Reference in New Issue