acpi: add aml_scope() term
Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
		
							parent
							
								
									0f2707e4e7
								
							
						
					
					
						commit
						2ef7c27b78
					
				@ -271,6 +271,15 @@ static Aml *aml_alloc(void)
 | 
				
			|||||||
    return var;
 | 
					    return var;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static Aml *aml_bundle(uint8_t op, AmlBlockFlags flags)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Aml *var = aml_alloc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var->op  = op;
 | 
				
			||||||
 | 
					    var->block_flags = flags;
 | 
				
			||||||
 | 
					    return var;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void aml_free(gpointer data)
 | 
					static void aml_free(gpointer data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Aml *var = data;
 | 
					    Aml *var = data;
 | 
				
			||||||
@ -335,3 +344,14 @@ void aml_append(Aml *parent_ctx, Aml *child)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    build_append_array(parent_ctx->buf, child->buf);
 | 
					    build_append_array(parent_ctx->buf, child->buf);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ACPI 1.0b: 16.2.5.1 Namespace Modifier Objects Encoding: DefScope */
 | 
				
			||||||
 | 
					Aml *aml_scope(const char *name_format, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    va_list ap;
 | 
				
			||||||
 | 
					    Aml *var = aml_bundle(0x10 /* ScopeOp */, AML_PACKAGE);
 | 
				
			||||||
 | 
					    va_start(ap, name_format);
 | 
				
			||||||
 | 
					    build_append_namestringv(var->buf, name_format, ap);
 | 
				
			||||||
 | 
					    va_end(ap);
 | 
				
			||||||
 | 
					    return var;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -59,6 +59,9 @@ void free_aml_allocator(void);
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
void aml_append(Aml *parent_ctx, Aml *child);
 | 
					void aml_append(Aml *parent_ctx, Aml *child);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Block AML object primitives */
 | 
				
			||||||
 | 
					Aml *aml_scope(const char *name_format, ...) GCC_FMT_ATTR(1, 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* other helpers */
 | 
					/* other helpers */
 | 
				
			||||||
GArray *build_alloc_array(void);
 | 
					GArray *build_alloc_array(void);
 | 
				
			||||||
void build_free_array(GArray *array);
 | 
					void build_free_array(GArray *array);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user