diff --git a/amoco/system/fs/ufs.py b/amoco/system/fs/ufs.py index dd25ef5..1237c35 100644 --- a/amoco/system/fs/ufs.py +++ b/amoco/system/fs/ufs.py @@ -145,7 +145,6 @@ B : fs_space """) class superblock(StructFormatter): - order = '<' def __init__(self,data="",offset=0): self.name_formatter('fs_magic') self.name_formatter('fs_clean') @@ -278,7 +277,6 @@ def token_smode_fmt(k,x,cls): I : ic_oeftflag """) class inode(StructFormatter): - order = '<' def __init__(self,data="",offset=0): self.func_formatter(ic_smode=token_smode_fmt) self.flag_formatter('ic_suid') @@ -304,7 +302,6 @@ def is_reg(self): s : fsd_data """) class fsd(StructFormatter): - order = '<' def __init__(self,data="",offset=0): if data: self.unpack(data,offset) @@ -324,7 +321,6 @@ def unpack(self,data,offset=0): i : acl_who """) class acl(StructFormatter): - order = '<' def __init__(self,data="",offset=0): if data: self.unpack(data,offset) @@ -373,7 +369,6 @@ def __init__(self,data="",offset=0): extent*1 : extents ; list of extent structs """) class extent_block(StructFormatter): - order = '<' def __init__(self,data="",offset=0): if data: self.unpack(data,offset) diff --git a/amoco/system/imx6.py b/amoco/system/imx6.py index ee2aa3f..32145ee 100644 --- a/amoco/system/imx6.py +++ b/amoco/system/imx6.py @@ -88,6 +88,7 @@ B : version """) class HAB_Header(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('tag') self.func_formatter(version=self.token_ver_format) @@ -128,6 +129,7 @@ def __init__(self,data="",offset=0): I : plugin """) class BootData(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.address_formatter('start') self.address_formatter('size') @@ -146,6 +148,7 @@ def __init__(self,data="",offset=0): H :> elen """) class PublicKey(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('key_type') if data: @@ -217,7 +220,7 @@ def unpack(self,data,offset=0): return self def size(self): - S = struct.calcsize(self.order+self.format()) + S = struct.calcsize(self.format()) S += sum((len(c) for c in self.cmds),0) return S @@ -247,6 +250,7 @@ def CMD(data,offset): I : mask """) class CheckData(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('cmd') self.address_formatter('address') @@ -265,7 +269,7 @@ def unpack(self,data,offset=0): return self def size(self): - S = struct.calcsize(self.order+self.format()) + S = struct.calcsize(self.format()) if hasattr(self,'count'): S += 4 return S @@ -277,6 +281,7 @@ def size(self): B : und """) class NOP(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('cmd') if data: self.unpack(data,offset) @@ -288,6 +293,7 @@ def __init__(self,data="",offset=0): B : eng """) class Unlock(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('cmd') if data: self.unpack(data,offset) @@ -303,7 +309,7 @@ def unpack(self,data,offset=0): return self def size(self): - S = struct.calcsize(self.order+self.format()) + S = struct.calcsize(self.format()) if hasattr(self,'val'): S += 4*len(self.val) return S @@ -321,6 +327,7 @@ def size(self): I :> key_dat """) class InstallKey(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('cmd') self.flag_formatter('flg') @@ -341,7 +348,7 @@ def unpack(self,data,offset=0): return self def size(self): - S = struct.calcsize(self.order+self.format()) + S = struct.calcsize(self.format()) if hasattr(self,'crt_hsh'): S += 4*len(self.crt_hsh) return S @@ -357,6 +364,7 @@ def size(self): I :> aut_start """) class Authenticate(StructFormatter): + order = '<' def __init__(self,data="",offset=0): self.name_formatter('cmd') self.flag_formatter('flg') @@ -391,7 +399,7 @@ def unpack(self,data,offset=0): return self def size(self): - S = struct.calcsize(self.order+self.format()) + S = struct.calcsize(self.format()) if hasattr(self,'blks'): S += 4*len(self.blks) return S diff --git a/amoco/system/structs.py b/amoco/system/structs.py index 79b1481..af757fd 100644 --- a/amoco/system/structs.py +++ b/amoco/system/structs.py @@ -314,9 +314,9 @@ class StructCore(object): @classmethod def format(cls): if cls.union is False: - return ''.join((f.format() for f in cls.fields)) + return cls.order+(''.join((f.format() for f in cls.fields))) else: - return cls.fields[cls.union].format() + return cls.order+cls.fields[cls.union].format() @classmethod def size(cls): return struct.calcsize(cls.format())