6.3.7 Branch Functions in 64-Bit Mode
In 64-bit mode and compatibility mode, 64-bit call-gate descriptors for far calls
are available
I just copied some lines of Intel processors manual in the above (Intel 64 and IA-32). What the manual means by "64-bit call-gate descriptors"? Is the offset of this type of call gate 32 bits only for CPU in 64 bit mode?

So how can we specify 64 bit offset and 16 byte call-gate descriptors for CPU in 64 bits mode? because when we are in 64 bits, IA-32e mode all the descriptors are 16 bytes.

Posted on 2010-08-09 01:36:10 by logicman112
I'm not sure what is implied by your second question, as 64 bits = 8 bytes.

Overall, the call-gate descriptor structure for long-mode explains it all, textually as well as visually.

I'm not sure where it is in the Intel docs, but in AMD64 Volume II Rev 3.12 (Sep 2006) it is in section 4.8.4, titled Gate Descriptors, and with Figure 4-23 as a corresponding visual.
Posted on 2010-08-09 01:48:27 by SpooK
Spook, Thank you to reply.

Call-gates are 16 bytes in 64 bit mode. It seems that in compatibility mode we use these 16 byte call-gates as well.

The meaning and purpose of the manual from 64-bit call-gate descriptors seems to be this 16 bytes descriptors.
Posted on 2010-08-10 03:45:51 by logicman112
Yes, that is because software running in compatibility mode (a flick of the switch, not much more) should be able to yield to a 64-bit kernel that isn't within the first 4GB of virtual memory.
Posted on 2010-08-10 08:07:12 by SpooK