Moved BufferFields into namespace
This commit is contained in:
@@ -148,6 +148,96 @@ impl AmlExecutable for NamedObj {
|
||||
}
|
||||
}
|
||||
},
|
||||
NamedObj::DefCreateBitField { ref name, ref source_buf, ref bit_index } => {
|
||||
let local_scope_string = get_namespace_string(scope.clone(), name.clone());
|
||||
|
||||
let resolved_source_buf = match source_buf.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
let resolved_index = match bit_index.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
|
||||
namespace.insert(local_scope_string, AmlValue::BufferField {
|
||||
source_buf: resolved_source_buf,
|
||||
index: resolved_index,
|
||||
length: 1
|
||||
});
|
||||
},
|
||||
NamedObj::DefCreateByteField { ref name, ref source_buf, ref byte_index } => {
|
||||
let local_scope_string = get_namespace_string(scope.clone(), name.clone());
|
||||
|
||||
let resolved_source_buf = match source_buf.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
let resolved_index = match byte_index.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
|
||||
namespace.insert(local_scope_string, AmlValue::BufferField {
|
||||
source_buf: resolved_source_buf,
|
||||
index: resolved_index,
|
||||
length: 8
|
||||
});
|
||||
},
|
||||
NamedObj::DefCreateWordField { ref name, ref source_buf, ref byte_index } => {
|
||||
let local_scope_string = get_namespace_string(scope.clone(), name.clone());
|
||||
|
||||
let resolved_source_buf = match source_buf.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
let resolved_index = match byte_index.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
|
||||
namespace.insert(local_scope_string, AmlValue::BufferField {
|
||||
source_buf: resolved_source_buf,
|
||||
index: resolved_index,
|
||||
length: 16
|
||||
});
|
||||
},
|
||||
NamedObj::DefCreateDWordField { ref name, ref source_buf, ref byte_index } => {
|
||||
let local_scope_string = get_namespace_string(scope.clone(), name.clone());
|
||||
|
||||
let resolved_source_buf = match source_buf.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
let resolved_index = match byte_index.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
|
||||
namespace.insert(local_scope_string, AmlValue::BufferField {
|
||||
source_buf: resolved_source_buf,
|
||||
index: resolved_index,
|
||||
length: 32
|
||||
});
|
||||
},
|
||||
NamedObj::DefCreateQWordField { ref name, ref source_buf, ref byte_index } => {
|
||||
let local_scope_string = get_namespace_string(scope.clone(), name.clone());
|
||||
|
||||
let resolved_source_buf = match source_buf.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
let resolved_index = match byte_index.execute(namespace, scope.clone()) {
|
||||
Some(r) => Box::new(r),
|
||||
_ => return None
|
||||
};
|
||||
|
||||
namespace.insert(local_scope_string, AmlValue::BufferField {
|
||||
source_buf: resolved_source_buf,
|
||||
index: resolved_index,
|
||||
length: 64
|
||||
});
|
||||
},
|
||||
NamedObj::DefOpRegion { ref name, ref region, ref offset, ref len } => {
|
||||
let local_scope_string = get_namespace_string(scope.clone(), name.clone());
|
||||
|
||||
|
||||
@@ -13,7 +13,11 @@ use super::namestring::SuperName;
|
||||
pub enum AmlValue {
|
||||
Uninitialized,
|
||||
Buffer,
|
||||
BufferField,
|
||||
BufferField {
|
||||
source_buf: Box<AmlValue>,
|
||||
index: Box<AmlValue>,
|
||||
length: usize
|
||||
},
|
||||
DDBHandle,
|
||||
DebugObject,
|
||||
Device(BTreeMap<String, AmlValue>),
|
||||
|
||||
Reference in New Issue
Block a user