Advertisement
Guest User

Untitled

a guest
Feb 1st, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. foo = Struct("foo",
  2.              Byte("mask"),
  3.              Switch("temp", lambda ctx: ctx.mask & 0xE0,
  4.                     {
  5.                         0xE0: UBInt32("x"),
  6.                         0xC0: Pointer(lambda ctx: 0, UBInt32("x")),
  7.                         0x80: Pointer(lambda ctx: 0, UBInt16("x")),
  8.                         0xA0: Pointer(lambda ctx: 0, UBInt16("x"))
  9.                     }, default=Pointer(lambda ctx: 0, Byte("x"))),
  10.              Switch("cuint", lambda ctx: ctx.mask & 0xE0,
  11.                     {
  12.                         0xE0: Value("x", lambda ctx: ctx.temp),
  13.                         0xC0: Value("x", lambda ctx: ctx.temp & 0x3FFFFFFF),
  14.                         0x80: Value("x", lambda ctx: ctx.temp & 0x7FFF),
  15.                         0xA0: Value("x", lambda ctx: ctx.temp & 0x7FFF)
  16.                     }, default=Value("x", lambda ctx: ctx.temp)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement