ChakraJIT.idl 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. cpp_quote("#ifndef __JITTypes_h__")
  6. cpp_quote("#define __JITTypes_h__")
  7. #include "JITTypes.h"
  8. // we can't include Windows.h, so for simplicity, let's define these values ourself
  9. // from: https://msdn.microsoft.com/en-us/library/windows/desktop/ms684880.aspx
  10. #define PROCESS_VM_OPERATION 0x0008
  11. #define PROCESS_VM_READ 0x0010
  12. #define PROCESS_VM_WRITE 0x0020
  13. #define PROCESS_QUERY_LIMITED_INFORMATION 0x1000
  14. cpp_quote("#endif //__JITTypes_h__")
  15. [
  16. uuid(ead694ed-2243-44cb-a9dc-85d3ba934dab),
  17. pointer_default(unique)
  18. ]
  19. interface IChakraJIT
  20. {
  21. typedef CodeGenWorkItemIDL* pCodeGenWorkItemIDL;
  22. HRESULT Shutdown([in] handle_t binding);
  23. HRESULT ConnectProcessWithProcessHandle(
  24. [in] handle_t binding,
  25. [in, system_handle(sh_process, PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_QUERY_LIMITED_INFORMATION)] HANDLE processHandle,
  26. [in] CHAKRA_PTR chakraBaseAddress,
  27. [in] CHAKRA_PTR crtBaseAddress
  28. );
  29. #if !(WINVER >= _WIN32_WINNT_WINBLUE)
  30. HRESULT ConnectProcess(
  31. [in] handle_t binding,
  32. [in] CHAKRA_PTR chakraBaseAddress,
  33. [in] CHAKRA_PTR crtBaseAddress
  34. );
  35. #endif
  36. HRESULT InitializeThreadContext(
  37. [in] handle_t binding,
  38. [in] ThreadContextDataIDL * threadData,
  39. [out] PPTHREADCONTEXT_HANDLE threadContextInfoAddress,
  40. [out] CHAKRA_PTR * prereservedRegionAddr,
  41. [out] CHAKRA_PTR * jitThunkAddr);
  42. HRESULT CleanupThreadContext(
  43. [in] handle_t binding,
  44. [in, out] PPTHREADCONTEXT_HANDLE threadContextInfoAddress);
  45. HRESULT UpdatePropertyRecordMap(
  46. [in] handle_t binding,
  47. [in] PTHREADCONTEXT_HANDLE threadContextInfoAddress,
  48. [in, unique] BVSparseNodeIDL * updatedPropsBVHead);
  49. HRESULT AddModuleRecordInfo(
  50. [in] handle_t binding,
  51. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  52. [in] unsigned int moduleId,
  53. [in] CHAKRA_PTR localExportSlotsAddr);
  54. HRESULT SetWellKnownHostTypeId(
  55. [in] handle_t binding,
  56. [in] PTHREADCONTEXT_HANDLE threadContextInfoAddress,
  57. [in] int typeId);
  58. HRESULT InitializeScriptContext(
  59. [in] handle_t binding,
  60. [in] ScriptContextDataIDL * scriptContextData,
  61. [in] PTHREADCONTEXT_HANDLE threadContextInfoAddress,
  62. [out] PPSCRIPTCONTEXT_HANDLE scriptContextInfoAddress);
  63. HRESULT CloseScriptContext(
  64. [in] handle_t binding,
  65. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress);
  66. HRESULT CleanupScriptContext(
  67. [in] handle_t binding,
  68. [in, out] PPSCRIPTCONTEXT_HANDLE scriptContextInfoAddress);
  69. HRESULT FreeAllocation(
  70. [in] handle_t binding,
  71. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  72. [in] CHAKRA_PTR codeAddress);
  73. HRESULT NewInterpreterThunkBlock(
  74. [in] handle_t binding,
  75. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  76. [in] InterpreterThunkInputIDL * thunkInput,
  77. [out] InterpreterThunkOutputIDL * thunkOutput);
  78. HRESULT DecommitInterpreterBufferManager(
  79. [in] handle_t binding,
  80. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  81. [in] boolean asmJsManager);
  82. HRESULT IsNativeAddr(
  83. [in] handle_t binding,
  84. [in] PTHREADCONTEXT_HANDLE threadContextInfoAddress,
  85. [in] CHAKRA_PTR address,
  86. [out] boolean * result);
  87. HRESULT SetIsPRNGSeeded(
  88. [in] handle_t binding,
  89. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  90. [in] boolean value);
  91. HRESULT RemoteCodeGen(
  92. [in] handle_t binding,
  93. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  94. [in] CodeGenWorkItemIDL * workItemData,
  95. [out] JITOutputIDL * jitData);
  96. #if DBG
  97. HRESULT IsInterpreterThunkAddr(
  98. [in] handle_t binding,
  99. [in] PSCRIPTCONTEXT_HANDLE scriptContextInfoAddress,
  100. [in] CHAKRA_PTR address,
  101. [in] boolean asmjsThunk,
  102. [out] boolean * result);
  103. #endif
  104. }