open($fd, "+<:unix", $dev_path) || die "Failed to open $dev_path : $!"; @regs = ($addr, 0x10111213, 0xaaaa, 0xbbbb); $regs = pack('QQQ', @regs); $rc = ioctl($fd, $REG_R, $regs); ($offset, $data0, $data1, $data2) = unpack('QQQ', $regs);