18333709. NATIVE EMULATION COMPATIBLE APPLICATION BINARY INTERFACE FOR SUPPORTING EMULATION OF FOREIGN CODE simplified abstract (Microsoft Technology Licensing, LLC)

From WikiPatents
Jump to navigation Jump to search

NATIVE EMULATION COMPATIBLE APPLICATION BINARY INTERFACE FOR SUPPORTING EMULATION OF FOREIGN CODE

Organization Name

Microsoft Technology Licensing, LLC

Inventor(s)

Pedro Miguel Sequeira De Justo Teixeira of Kirkland WA (US)

Darek Josip Mihocka of Mercer Island WA (US)

Jon Robert Berry of Woodinville WA (US)

Russell Charles Hadley of Bellevue WA (US)

James David Cleary of Seattle WA (US)

Clarence Siu Yeen Dang of Newcastle WA (US)

NATIVE EMULATION COMPATIBLE APPLICATION BINARY INTERFACE FOR SUPPORTING EMULATION OF FOREIGN CODE - A simplified explanation of the abstract

This abstract first appeared for US patent application 18333709 titled 'NATIVE EMULATION COMPATIBLE APPLICATION BINARY INTERFACE FOR SUPPORTING EMULATION OF FOREIGN CODE

Simplified Explanation

The abstract describes a method for processing calls between different application binary interfaces (ABI) using a common reference address. The method involves determining whether the reference address is within a memory range storing native code or not, and whether the callee is native or foreign. Based on this determination, the execution of the callee is initiated using different approaches.

  • The method uses a lookup structure to determine the nature of the reference address and the callee.
  • When the caller is native and the callee is foreign, the callee is called using the reference address within an emulator.
  • When the caller is foreign and the callee is native, an entry thunk is called.
  • When the caller is native and the callee is foreign, an exit thunk is called.
  • When both the caller and callee are native, the callee is directly called using the reference address.

Potential applications of this technology:

  • Cross-platform software development, allowing seamless integration between native and foreign code.
  • Emulation of foreign code within a native environment.
  • Facilitating communication and interoperability between different application binary interfaces.

Problems solved by this technology:

  • Incompatibility issues between different application binary interfaces.
  • Efficient execution of foreign code within a native environment.
  • Simplifying the process of integrating native and foreign code.

Benefits of this technology:

  • Improved compatibility between different application binary interfaces.
  • Enhanced performance by directly calling native code.
  • Simplified development process for cross-platform software.


Original Abstract Submitted

Using a common reference address when processing calls between a native application binary interface (ABI) and a foreign ABI. Based on a caller calling using a reference address, a lookup structure is used to determine whether the reference address is within a memory range storing native code and that the callee is native, or a memory range not storing native code and that the callee is foreign. Execution of a callee is initiated based on one of (i) calling the callee using the reference address within an emulator when the caller is native and the callee is foreign; (ii) calling an entry thunk when the caller is foreign and the callee is native; (iii) calling an exit thunk when the caller is native and the callee is foreign; or (iv) directly calling the callee using the reference address when the caller is native and the callee is native.