summaryrefslogtreecommitdiff
path: root/runtime/oat.h
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2023-01-30 14:29:11 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2023-02-01 09:52:45 +0000
commit0f6af5e3b51a7f5905d09a98ec8d531541666015 (patch)
tree7ed720cc521bb7f6e3b092cf6900a34d050c3aba /runtime/oat.h
parentd04ed700190056ecd367ee41e6b7f3b87dc7f901 (diff)
Reland "Write classes in runtime-generated app image."
This reverts commit 24b3d648ff6c2c200003f55ac63fc910d7bfd40f. Bug: 260557058 Reason for revert: - Encode class loader context in image, and check it at load time. - Set nterp entrypoint to methods that can. Test: test.py Test: atest com.android.bluetooth.opp.BluetoothOppObexServerSessionTest#onPut_withUnsupportedMimeTypeInHeader_returnsHttpBadRequest Change-Id: Ibf4a8604c4a226d1acc021103668e211446bb53c
Diffstat (limited to 'runtime/oat.h')
-rw-r--r--runtime/oat.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/runtime/oat.h b/runtime/oat.h
index 3b32e11daa..e062baaee9 100644
--- a/runtime/oat.h
+++ b/runtime/oat.h
@@ -29,6 +29,18 @@ namespace art {
enum class InstructionSet;
class InstructionSetFeatures;
+enum class StubType {
+ kJNIDlsymLookupTrampoline,
+ kJNIDlsymLookupCriticalTrampoline,
+ kQuickGenericJNITrampoline,
+ kQuickIMTConflictTrampoline,
+ kQuickResolutionTrampoline,
+ kQuickToInterpreterBridge,
+ kNterpTrampoline,
+ kLast = kNterpTrampoline,
+};
+std::ostream& operator<<(std::ostream& stream, StubType stub_type);
+
class PACKED(4) OatHeader {
public:
static constexpr std::array<uint8_t, 4> kOatMagic { { 'o', 'a', 't', '\n' } };
@@ -111,6 +123,8 @@ class PACKED(4) OatHeader {
bool IsConcurrentCopying() const;
bool RequiresImage() const;
+ const uint8_t* GetOatAddress(StubType type) const;
+
private:
bool KeyHasValue(const char* key, const char* value, size_t value_size) const;