Long mode

Just wondering; why wasn’t the 32-bit Chameleon code ported to 64-bit?

Think about it guys. That would really have made our life easier. Here is one example. Porting the disassembled _lzvn_decode function would have been pretty easy …

I first changed the Makefiles to make it compile the selected build target i.e. i386 or x86_64. For this I also had to copy the i386 directory to x86_64 and then I changed libsaio/libsaio.h like so:

-#include "io_inline.h"
+#include <architecture/i386/pio.h>

This way it includes: /usr/include/architecture/i386/pio.h instead of libsaio.h and now the errors for the x86_64 target in this file are solved.

I also added a new function called _prot_to_long to asm.s and it compiles without errors, but now I have to solve a reboot issue. And yes. I decided to switch from protected mode to long mode so that I can call decode_lzvn() without issues. Theoretically that is, because it isn’t working yet.

p.s. Oops. I clicked on “Update” instead of “Preview Change”. Now you see an incomplete article. Sorry about that. Hang in…

5 thoughts on “Long mode

  1. This is great input. Are you somehow feeding back those changes to the Chameleon source ?
    Which makes me wonder if there is an ‘official’ chameleon git or something like it.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s