1 /* |
1 /* |
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
34 class NativeLookup : AllStatic { |
34 class NativeLookup : AllStatic { |
35 private: |
35 private: |
36 // JNI name computation |
36 // JNI name computation |
37 static char* pure_jni_name(methodHandle method); |
37 static char* pure_jni_name(methodHandle method); |
38 static char* long_jni_name(methodHandle method); |
38 static char* long_jni_name(methodHandle method); |
|
39 static char* critical_jni_name(methodHandle method); |
39 |
40 |
40 // Style specific lookup |
41 // Style specific lookup |
41 static address lookup_style(methodHandle method, char* pure_name, const char* long_name, int args_size, bool os_style, bool& in_base_library, TRAPS); |
42 static address lookup_style(methodHandle method, char* pure_name, const char* long_name, int args_size, bool os_style, bool& in_base_library, TRAPS); |
|
43 static address lookup_critical_style(methodHandle method, char* pure_name, const char* long_name, int args_size, bool os_style); |
42 static address lookup_base (methodHandle method, bool& in_base_library, TRAPS); |
44 static address lookup_base (methodHandle method, bool& in_base_library, TRAPS); |
43 static address lookup_entry(methodHandle method, bool& in_base_library, TRAPS); |
45 static address lookup_entry(methodHandle method, bool& in_base_library, TRAPS); |
44 static address lookup_entry_prefixed(methodHandle method, bool& in_base_library, TRAPS); |
46 static address lookup_entry_prefixed(methodHandle method, bool& in_base_library, TRAPS); |
45 public: |
47 public: |
46 // Lookup native function. May throw UnsatisfiedLinkError. |
48 // Lookup native function. May throw UnsatisfiedLinkError. |
47 static address lookup(methodHandle method, bool& in_base_library, TRAPS); |
49 static address lookup(methodHandle method, bool& in_base_library, TRAPS); |
|
50 static address lookup_critical_entry(methodHandle method); |
48 |
51 |
49 // Lookup native functions in base library. |
52 // Lookup native functions in base library. |
50 static address base_library_lookup(const char* class_name, const char* method_name, const char* signature); |
53 static address base_library_lookup(const char* class_name, const char* method_name, const char* signature); |
51 }; |
54 }; |
52 |
55 |