Lines Matching refs:self

29     def is_wider_than(self, other):  argument
44 return self.value > other.value
111 def __init__(self, node, offset, name, data): argument
112 self._node = node
113 self._offset = offset
114 self.name = name
115 self.value = None
116 self.bytes = bytes(data)
117 self.dirty = False
119 self.type = Type.BOOL
120 self.value = True
122 self.type, self.value = BytesToValue(bytes(data))
124 def RefreshOffset(self, poffset): argument
125 self._offset = poffset
127 def Widen(self, newprop): argument
150 if self.type.is_wider_than(newprop.type):
151 if self.type == Type.INT and newprop.type == Type.BYTE:
152 if type(self.value) == list:
154 for val in self.value:
157 new_value = [chr(by) for by in self.value]
158 self.value = new_value
159 self.type = newprop.type
161 if type(newprop.value) == list and type(self.value) != list:
162 self.value = [self.value]
164 if type(self.value) == list and len(newprop.value) > len(self.value):
165 val = self.GetEmpty(self.type)
166 while len(self.value) < len(newprop.value):
167 self.value.append(val)
170 def GetEmpty(self, type): argument
185 def GetOffset(self): argument
191 self._node._fdt.CheckCache()
192 return self._node._fdt.GetStructOffset(self._offset)
194 def SetInt(self, val): argument
203 self.bytes = struct.pack('>I', val);
204 self.value = self.bytes
205 self.type = Type.INT
206 self.dirty = True
208 def SetData(self, bytes): argument
214 self.bytes = bytes
215 self.type, self.value = BytesToValue(bytes)
216 self.dirty = True
218 def Sync(self, auto_resize=False): argument
231 if self._offset is None or self.dirty:
232 node = self._node
235 while fdt_obj.setprop(node.Offset(), self.name, self.bytes,
238 len(self.bytes))
239 fdt_obj.setprop(node.Offset(), self.name, self.bytes)
241 fdt_obj.setprop(node.Offset(), self.name, self.bytes)
256 def __init__(self, fdt, parent, offset, name, path): argument
257 self._fdt = fdt
258 self.parent = parent
259 self._offset = offset
260 self.name = name
261 self.path = path
262 self.subnodes = []
263 self.props = {}
265 def GetFdt(self): argument
271 return self._fdt
273 def FindNode(self, name): argument
281 for subnode in self.subnodes:
286 def Offset(self): argument
292 self._fdt.CheckCache()
293 return self._offset
295 def Scan(self): argument
301 fdt_obj = self._fdt._fdt_obj
302 self.props = self._fdt.GetProps(self)
303 phandle = fdt_obj.get_phandle(self.Offset())
305 self._fdt.phandle_to_node[phandle] = self
307 offset = fdt_obj.first_subnode(self.Offset(), QUIET_NOTFOUND)
309 sep = '' if self.path[-1] == '/' else '/'
311 path = self.path + sep + name
312 node = Node(self._fdt, self, offset, name, path)
313 self.subnodes.append(node)
318 def Refresh(self, my_offset): argument
324 fdt_obj = self._fdt._fdt_obj
325 if self._offset != my_offset:
326 self._offset = my_offset
327 offset = fdt_obj.first_subnode(self._offset, QUIET_NOTFOUND)
328 for subnode in self.subnodes:
337 poffset = fdt_obj.first_property_offset(self._offset, QUIET_NOTFOUND)
340 prop = self.props.get(p.name)
347 def DeleteProp(self, prop_name): argument
357 CheckErr(self._fdt._fdt_obj.delprop(self.Offset(), prop_name),
358 "Node '%s': delete property: '%s'" % (self.path, prop_name))
359 del self.props[prop_name]
360 self._fdt.Invalidate()
362 def AddZeroProp(self, prop_name): argument
368 self.props[prop_name] = Prop(self, None, prop_name,
371 def AddEmptyProp(self, prop_name, len): argument
382 self.props[prop_name] = Prop(self, None, prop_name, value)
384 def _CheckProp(self, prop_name): argument
396 if prop_name not in self.props:
398 (self._fdt._fname, self.path, prop_name))
399 return self
401 def SetInt(self, prop_name, val): argument
413 self._CheckProp(prop_name).props[prop_name].SetInt(val)
415 def SetData(self, prop_name, val): argument
425 self._CheckProp(prop_name).props[prop_name].SetData(val)
427 def SetString(self, prop_name, val): argument
439 self._CheckProp(prop_name).props[prop_name].SetData(val + b'\0')
441 def AddData(self, prop_name, val): argument
451 self.props[prop_name] = Prop(self, None, prop_name, val)
453 def AddString(self, prop_name, val): argument
464 self.AddData(prop_name, val + b'\0')
466 def AddInt(self, prop_name, val): argument
476 self.AddData(prop_name, struct.pack('>I', val))
478 def AddSubnode(self, name): argument
487 path = self.path + '/' + name
488 subnode = Node(self._fdt, self, None, name, path)
489 self.subnodes.append(subnode)
492 def Sync(self, auto_resize=False): argument
505 if self._offset is None:
507 fdt_obj = self._fdt._fdt_obj
510 offset = fdt_obj.add_subnode(self.parent._offset, self.name,
516 offset = fdt_obj.add_subnode(self.parent._offset, self.name)
517 self._offset = offset
522 for node in reversed(self.subnodes):
530 prop_list = sorted(self.props.values(),
546 def __init__(self, fname): argument
547 self._fname = fname
548 self._cached_offsets = False
549 self.phandle_to_node = {}
550 self.name = ''
551 if self._fname:
552 self.name = self._fname
553 self._fname = fdt_util.EnsureCompiled(self._fname)
555 with open(self._fname, 'rb') as fd:
556 self._fdt_obj = libfdt.Fdt(fd.read())
574 def LookupPhandle(self, phandle): argument
583 return self.phandle_to_node.get(phandle)
585 def Scan(self, root='/'): argument
595 self._cached_offsets = True
596 self._root = self.Node(self, None, 0, '/', '/')
597 self._root.Scan()
599 def GetRoot(self): argument
605 return self._root
607 def GetNode(self, path): argument
615 node = self._root
627 def Flush(self): argument
632 with open(self._fname, 'wb') as fd:
633 fd.write(self._fdt_obj.as_bytearray())
635 def Sync(self, auto_resize=False): argument
645 self._root.Sync(auto_resize)
646 self.Invalidate()
648 def Pack(self): argument
654 CheckErr(self._fdt_obj.pack(), 'pack')
655 self.Invalidate()
657 def GetContents(self): argument
663 return bytes(self._fdt_obj.as_bytearray())
665 def GetFdtObj(self): argument
671 return self._fdt_obj
673 def GetProps(self, node): argument
687 poffset = self._fdt_obj.first_property_offset(node._offset,
690 p = self._fdt_obj.get_property_by_offset(poffset)
694 poffset = self._fdt_obj.next_property_offset(poffset,
698 def Invalidate(self): argument
700 self._cached_offsets = False
702 def CheckCache(self): argument
704 if self._cached_offsets:
706 self.Refresh()
707 self._cached_offsets = True
709 def Refresh(self): argument
711 self._root.Refresh(0)
713 def GetStructOffset(self, offset): argument
721 return self._fdt_obj.off_dt_struct() + offset
724 def Node(self, fdt, parent, offset, name, path): argument
740 def GetFilename(self): argument
746 return self._fname