summaryrefslogtreecommitdiff
path: root/python/examples/kaitai/kaitai_struct_formats/firmware
diff options
context:
space:
mode:
authorAndrew Lamoureux <andrew@vector35.com>2019-03-19 17:32:44 -0400
committerRusty Wagner <rusty@vector35.com>2019-03-20 13:00:17 -0400
commit24ead55316ac8497df5842caf4e1d51f2b799787 (patch)
tree3dfdfae8a076445c9d24bf6d1b40e57f36ebf94a /python/examples/kaitai/kaitai_struct_formats/firmware
parent411acbaa4a1d217e731d3df0b189445117be3b26 (diff)
kaitai: adjustments and rearrangements for python2/3 compat
Diffstat (limited to 'python/examples/kaitai/kaitai_struct_formats/firmware')
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py64
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/firmware/ines.py278
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py149
4 files changed, 0 insertions, 491 deletions
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py b/python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py b/python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py
deleted file mode 100644
index b032da33..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/andes_firmware.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from __future__ import absolute_import
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class AndesFirmware(KaitaiStruct):
- """Firmware image found with MediaTek MT76xx wifi chipsets."""
- SEQ_FIELDS = ["image_header", "ilm", "dlm"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['image_header']['start'] = self._io.pos()
- self._raw_image_header = self._io.read_bytes(32)
- io = KaitaiStream(BytesIO(self._raw_image_header))
- self.image_header = self._root.ImageHeader(io, self, self._root)
- self.image_header._read()
- self._debug['image_header']['end'] = self._io.pos()
- self._debug['ilm']['start'] = self._io.pos()
- self.ilm = self._io.read_bytes(self.image_header.ilm_len)
- self._debug['ilm']['end'] = self._io.pos()
- self._debug['dlm']['start'] = self._io.pos()
- self.dlm = self._io.read_bytes(self.image_header.dlm_len)
- self._debug['dlm']['end'] = self._io.pos()
-
- class ImageHeader(KaitaiStruct):
- SEQ_FIELDS = ["ilm_len", "dlm_len", "fw_ver", "build_ver", "extra", "build_time"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['ilm_len']['start'] = self._io.pos()
- self.ilm_len = self._io.read_u4le()
- self._debug['ilm_len']['end'] = self._io.pos()
- self._debug['dlm_len']['start'] = self._io.pos()
- self.dlm_len = self._io.read_u4le()
- self._debug['dlm_len']['end'] = self._io.pos()
- self._debug['fw_ver']['start'] = self._io.pos()
- self.fw_ver = self._io.read_u2le()
- self._debug['fw_ver']['end'] = self._io.pos()
- self._debug['build_ver']['start'] = self._io.pos()
- self.build_ver = self._io.read_u2le()
- self._debug['build_ver']['end'] = self._io.pos()
- self._debug['extra']['start'] = self._io.pos()
- self.extra = self._io.read_u4le()
- self._debug['extra']['end'] = self._io.pos()
- self._debug['build_time']['start'] = self._io.pos()
- self.build_time = (self._io.read_bytes(16)).decode(u"UTF-8")
- self._debug['build_time']['end'] = self._io.pos()
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/ines.py b/python/examples/kaitai/kaitai_struct_formats/firmware/ines.py
deleted file mode 100644
index e9c97d29..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/ines.py
+++ /dev/null
@@ -1,278 +0,0 @@
-from __future__ import absolute_import
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-from enum import Enum
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class Ines(KaitaiStruct):
- """
- .. seealso::
- Source - https://wiki.nesdev.com/w/index.php/INES
- """
- SEQ_FIELDS = ["header", "trainer", "prg_rom", "chr_rom", "playchoice10", "title"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['header']['start'] = self._io.pos()
- self._raw_header = self._io.read_bytes(16)
- io = KaitaiStream(BytesIO(self._raw_header))
- self.header = self._root.Header(io, self, self._root)
- self.header._read()
- self._debug['header']['end'] = self._io.pos()
- if self.header.f6.trainer:
- self._debug['trainer']['start'] = self._io.pos()
- self.trainer = self._io.read_bytes(512)
- self._debug['trainer']['end'] = self._io.pos()
-
- self._debug['prg_rom']['start'] = self._io.pos()
- self.prg_rom = self._io.read_bytes((self.header.len_prg_rom * 16384))
- self._debug['prg_rom']['end'] = self._io.pos()
- self._debug['chr_rom']['start'] = self._io.pos()
- self.chr_rom = self._io.read_bytes((self.header.len_chr_rom * 8192))
- self._debug['chr_rom']['end'] = self._io.pos()
- if self.header.f7.playchoice10:
- self._debug['playchoice10']['start'] = self._io.pos()
- self.playchoice10 = self._root.Playchoice10(self._io, self, self._root)
- self.playchoice10._read()
- self._debug['playchoice10']['end'] = self._io.pos()
-
- if not (self._io.is_eof()):
- self._debug['title']['start'] = self._io.pos()
- self.title = (self._io.read_bytes_full()).decode(u"ASCII")
- self._debug['title']['end'] = self._io.pos()
-
-
- class Header(KaitaiStruct):
- SEQ_FIELDS = ["magic", "len_prg_rom", "len_chr_rom", "f6", "f7", "len_prg_ram", "f9", "f10", "reserved"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x4E\x45\x53\x1A")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['len_prg_rom']['start'] = self._io.pos()
- self.len_prg_rom = self._io.read_u1()
- self._debug['len_prg_rom']['end'] = self._io.pos()
- self._debug['len_chr_rom']['start'] = self._io.pos()
- self.len_chr_rom = self._io.read_u1()
- self._debug['len_chr_rom']['end'] = self._io.pos()
- self._debug['f6']['start'] = self._io.pos()
- self._raw_f6 = self._io.read_bytes(1)
- io = KaitaiStream(BytesIO(self._raw_f6))
- self.f6 = self._root.Header.F6(io, self, self._root)
- self.f6._read()
- self._debug['f6']['end'] = self._io.pos()
- self._debug['f7']['start'] = self._io.pos()
- self._raw_f7 = self._io.read_bytes(1)
- io = KaitaiStream(BytesIO(self._raw_f7))
- self.f7 = self._root.Header.F7(io, self, self._root)
- self.f7._read()
- self._debug['f7']['end'] = self._io.pos()
- self._debug['len_prg_ram']['start'] = self._io.pos()
- self.len_prg_ram = self._io.read_u1()
- self._debug['len_prg_ram']['end'] = self._io.pos()
- self._debug['f9']['start'] = self._io.pos()
- self._raw_f9 = self._io.read_bytes(1)
- io = KaitaiStream(BytesIO(self._raw_f9))
- self.f9 = self._root.Header.F9(io, self, self._root)
- self.f9._read()
- self._debug['f9']['end'] = self._io.pos()
- self._debug['f10']['start'] = self._io.pos()
- self._raw_f10 = self._io.read_bytes(1)
- io = KaitaiStream(BytesIO(self._raw_f10))
- self.f10 = self._root.Header.F10(io, self, self._root)
- self.f10._read()
- self._debug['f10']['end'] = self._io.pos()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
-
- class F6(KaitaiStruct):
- """
- .. seealso::
- Source - https://wiki.nesdev.com/w/index.php/INES#Flags_6
- """
-
- class Mirroring(Enum):
- horizontal = 0
- vertical = 1
- SEQ_FIELDS = ["lower_mapper", "four_screen", "trainer", "has_battery_ram", "mirroring"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['lower_mapper']['start'] = self._io.pos()
- self.lower_mapper = self._io.read_bits_int(4)
- self._debug['lower_mapper']['end'] = self._io.pos()
- self._debug['four_screen']['start'] = self._io.pos()
- self.four_screen = self._io.read_bits_int(1) != 0
- self._debug['four_screen']['end'] = self._io.pos()
- self._debug['trainer']['start'] = self._io.pos()
- self.trainer = self._io.read_bits_int(1) != 0
- self._debug['trainer']['end'] = self._io.pos()
- self._debug['has_battery_ram']['start'] = self._io.pos()
- self.has_battery_ram = self._io.read_bits_int(1) != 0
- self._debug['has_battery_ram']['end'] = self._io.pos()
- self._debug['mirroring']['start'] = self._io.pos()
- self.mirroring = KaitaiStream.resolve_enum(self._root.Header.F6.Mirroring, self._io.read_bits_int(1))
- self._debug['mirroring']['end'] = self._io.pos()
-
-
- class F7(KaitaiStruct):
- """
- .. seealso::
- Source - https://wiki.nesdev.com/w/index.php/INES#Flags_7
- """
- SEQ_FIELDS = ["upper_mapper", "format", "playchoice10", "vs_unisystem"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['upper_mapper']['start'] = self._io.pos()
- self.upper_mapper = self._io.read_bits_int(4)
- self._debug['upper_mapper']['end'] = self._io.pos()
- self._debug['format']['start'] = self._io.pos()
- self.format = self._io.read_bits_int(2)
- self._debug['format']['end'] = self._io.pos()
- self._debug['playchoice10']['start'] = self._io.pos()
- self.playchoice10 = self._io.read_bits_int(1) != 0
- self._debug['playchoice10']['end'] = self._io.pos()
- self._debug['vs_unisystem']['start'] = self._io.pos()
- self.vs_unisystem = self._io.read_bits_int(1) != 0
- self._debug['vs_unisystem']['end'] = self._io.pos()
-
-
- class F9(KaitaiStruct):
- """
- .. seealso::
- Source - https://wiki.nesdev.com/w/index.php/INES#Flags_9
- """
-
- class TvSystem(Enum):
- ntsc = 0
- pal = 1
- SEQ_FIELDS = ["reserved", "tv_system"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.read_bits_int(7)
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['tv_system']['start'] = self._io.pos()
- self.tv_system = KaitaiStream.resolve_enum(self._root.Header.F9.TvSystem, self._io.read_bits_int(1))
- self._debug['tv_system']['end'] = self._io.pos()
-
-
- class F10(KaitaiStruct):
- """
- .. seealso::
- Source - https://wiki.nesdev.com/w/index.php/INES#Flags_10
- """
-
- class TvSystem(Enum):
- ntsc = 0
- dual1 = 1
- pal = 2
- dual2 = 3
- SEQ_FIELDS = ["reserved1", "bus_conflict", "prg_ram", "reserved2", "tv_system"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved1']['start'] = self._io.pos()
- self.reserved1 = self._io.read_bits_int(2)
- self._debug['reserved1']['end'] = self._io.pos()
- self._debug['bus_conflict']['start'] = self._io.pos()
- self.bus_conflict = self._io.read_bits_int(1) != 0
- self._debug['bus_conflict']['end'] = self._io.pos()
- self._debug['prg_ram']['start'] = self._io.pos()
- self.prg_ram = self._io.read_bits_int(1) != 0
- self._debug['prg_ram']['end'] = self._io.pos()
- self._debug['reserved2']['start'] = self._io.pos()
- self.reserved2 = self._io.read_bits_int(2)
- self._debug['reserved2']['end'] = self._io.pos()
- self._debug['tv_system']['start'] = self._io.pos()
- self.tv_system = KaitaiStream.resolve_enum(self._root.Header.F10.TvSystem, self._io.read_bits_int(2))
- self._debug['tv_system']['end'] = self._io.pos()
-
-
- @property
- def mapper(self):
- """
- .. seealso::
- Source - https://wiki.nesdev.com/w/index.php/Mapper
- """
- if hasattr(self, '_m_mapper'):
- return self._m_mapper if hasattr(self, '_m_mapper') else None
-
- self._m_mapper = (self.f6.lower_mapper | (self.f7.upper_mapper << 4))
- return self._m_mapper if hasattr(self, '_m_mapper') else None
-
-
- class Playchoice10(KaitaiStruct):
- """
- .. seealso::
- Source - http://wiki.nesdev.com/w/index.php/PC10_ROM-Images
- """
- SEQ_FIELDS = ["inst_rom", "prom"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['inst_rom']['start'] = self._io.pos()
- self.inst_rom = self._io.read_bytes(8192)
- self._debug['inst_rom']['end'] = self._io.pos()
- self._debug['prom']['start'] = self._io.pos()
- self.prom = self._root.Playchoice10.Prom(self._io, self, self._root)
- self.prom._read()
- self._debug['prom']['end'] = self._io.pos()
-
- class Prom(KaitaiStruct):
- SEQ_FIELDS = ["data", "counter_out"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['data']['start'] = self._io.pos()
- self.data = self._io.read_bytes(16)
- self._debug['data']['end'] = self._io.pos()
- self._debug['counter_out']['start'] = self._io.pos()
- self.counter_out = self._io.read_bytes(16)
- self._debug['counter_out']['end'] = self._io.pos()
-
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py b/python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py
deleted file mode 100644
index fb5b31f3..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/firmware/uimage.py
+++ /dev/null
@@ -1,149 +0,0 @@
-from __future__ import absolute_import
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from ...kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-from enum import Enum
-import collections
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class Uimage(KaitaiStruct):
- """The new uImage format allows more flexibility in handling images of various
- types (kernel, ramdisk, etc.), it also enhances integrity protection of images
- with sha1 and md5 checksums.
-
- .. seealso::
- Source - https://github.com/EmcraftSystems/u-boot/blob/master/include/image.h
- """
-
- class UimageOs(Enum):
- invalid = 0
- openbsd = 1
- netbsd = 2
- freebsd = 3
- bsd4_4 = 4
- linux = 5
- svr4 = 6
- esix = 7
- solaris = 8
- irix = 9
- sco = 10
- dell = 11
- ncr = 12
- lynxos = 13
- vxworks = 14
- psos = 15
- qnx = 16
- u_boot = 17
- rtems = 18
- artos = 19
- unity = 20
- integrity = 21
-
- class UimageArch(Enum):
- invalid = 0
- alpha = 1
- arm = 2
- i386 = 3
- ia64 = 4
- mips = 5
- mips64 = 6
- ppc = 7
- s390 = 8
- sh = 9
- sparc = 10
- sparc64 = 11
- m68k = 12
- nios = 13
- microblaze = 14
- nios2 = 15
- blackfin = 16
- avr32 = 17
- st200 = 18
-
- class UimageComp(Enum):
- none = 0
- gzip = 1
- bzip2 = 2
- lzma = 3
- lzo = 4
-
- class UimageType(Enum):
- invalid = 0
- standalone = 1
- kernel = 2
- ramdisk = 3
- multi = 4
- firmware = 5
- script = 6
- filesystem = 7
- flatdt = 8
- kwbimage = 9
- imximage = 10
- SEQ_FIELDS = ["header", "data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['header']['start'] = self._io.pos()
- self.header = self._root.Uheader(self._io, self, self._root)
- self.header._read()
- self._debug['header']['end'] = self._io.pos()
- self._debug['data']['start'] = self._io.pos()
- self.data = self._io.read_bytes(self.header.len_image)
- self._debug['data']['end'] = self._io.pos()
-
- class Uheader(KaitaiStruct):
- SEQ_FIELDS = ["magic", "header_crc", "timestamp", "len_image", "load_address", "entry_address", "data_crc", "os_type", "architecture", "image_type", "compression_type", "name"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x27\x05\x19\x56")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['header_crc']['start'] = self._io.pos()
- self.header_crc = self._io.read_u4be()
- self._debug['header_crc']['end'] = self._io.pos()
- self._debug['timestamp']['start'] = self._io.pos()
- self.timestamp = self._io.read_u4be()
- self._debug['timestamp']['end'] = self._io.pos()
- self._debug['len_image']['start'] = self._io.pos()
- self.len_image = self._io.read_u4be()
- self._debug['len_image']['end'] = self._io.pos()
- self._debug['load_address']['start'] = self._io.pos()
- self.load_address = self._io.read_u4be()
- self._debug['load_address']['end'] = self._io.pos()
- self._debug['entry_address']['start'] = self._io.pos()
- self.entry_address = self._io.read_u4be()
- self._debug['entry_address']['end'] = self._io.pos()
- self._debug['data_crc']['start'] = self._io.pos()
- self.data_crc = self._io.read_u4be()
- self._debug['data_crc']['end'] = self._io.pos()
- self._debug['os_type']['start'] = self._io.pos()
- self.os_type = KaitaiStream.resolve_enum(self._root.UimageOs, self._io.read_u1())
- self._debug['os_type']['end'] = self._io.pos()
- self._debug['architecture']['start'] = self._io.pos()
- self.architecture = KaitaiStream.resolve_enum(self._root.UimageArch, self._io.read_u1())
- self._debug['architecture']['end'] = self._io.pos()
- self._debug['image_type']['start'] = self._io.pos()
- self.image_type = KaitaiStream.resolve_enum(self._root.UimageType, self._io.read_u1())
- self._debug['image_type']['end'] = self._io.pos()
- self._debug['compression_type']['start'] = self._io.pos()
- self.compression_type = KaitaiStream.resolve_enum(self._root.UimageComp, self._io.read_u1())
- self._debug['compression_type']['end'] = self._io.pos()
- self._debug['name']['start'] = self._io.pos()
- self.name = (KaitaiStream.bytes_terminate(self._io.read_bytes(32), 0, False)).decode(u"UTF-8")
- self._debug['name']['end'] = self._io.pos()
-
-
-