Skip to content

Instantly share code, notes, and snippets.

@boochow
Created May 4, 2018 01:36
Show Gist options
  • Save boochow/1bccfc62d2d024bf66ce132bf8677f14 to your computer and use it in GitHub Desktop.
Save boochow/1bccfc62d2d024bf66ce132bf8677f14 to your computer and use it in GitHub Desktop.
class RAMBlockDev:
def __init__(self, block_size, num_blocks):
self.block_size = block_size
self.data = bytearray(block_size * num_blocks)
def readblocks(self, block_num, buf):
for i in range(len(buf)):
buf[i] = self.data[block_num * self.block_size + i]
def writeblocks(self, block_num, buf):
for i in range(len(buf)):
self.data[block_num * self.block_size + i] = buf[i]
def ioctl(self, op, arg):
if op == 4: # get number of blocks
return len(self.data) // self.block_size
if op == 5: # get block size
return self.block_size
def dump_block(self, block_num):
start = block_num * self.block_size
for i in range(self.block_size/16):
for j in range(16):
print("%02x " % self.data[start + i * 16 + j], end="")
print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment