338 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			338 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Java
		
	
	
	
| /*
 | |
|  * Copyright (C) 2011 The Android Open Source Project
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *      http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| import dalvik.annotation.optimization.CriticalNative;
 | |
| import dalvik.annotation.optimization.FastNative;
 | |
| 
 | |
| /*
 | |
|  * AUTOMATICALLY GENERATED FROM art/tools/mako-source-generator/...../MyClassNatives.java.mako
 | |
|  *
 | |
|  * The tool is however not available, so the changes now need to be done by hand.
 | |
|  */
 | |
| class MyClassNatives {
 | |
| 
 | |
|     // Normal native
 | |
|     native void throwException();
 | |
|     // Normal native
 | |
|     synchronized native void synchronizedThrowException();
 | |
|     // Normal native
 | |
|     native void foo();
 | |
|     // Normal native
 | |
|     native int bar(int count);
 | |
|     // Normal native
 | |
|     static native int sbar(int count);
 | |
|     // Normal native
 | |
|     native int fooI(int x);
 | |
|     // Normal native
 | |
|     native int fooII(int x, int y);
 | |
|     // Normal native
 | |
|     native long fooJJ(long x, long y);
 | |
|     // Normal native
 | |
|     native Object fooO(Object x);
 | |
|     // Normal native
 | |
|     native double fooDD(double x, double y);
 | |
|     // Normal native
 | |
|     synchronized native long fooJJ_synchronized(long x, long y);
 | |
|     // Normal native
 | |
|     native Object fooIOO(int x, Object y, Object z);
 | |
|     // Normal native
 | |
|     static native Object fooSIOO(int x, Object y, Object z);
 | |
|     // Normal native
 | |
|     static native int fooSII(int x, int y);
 | |
|     // Normal native
 | |
|     static native double fooSDD(double x, double y);
 | |
|     // Normal native
 | |
|     static synchronized native Object fooSSIOO(int x, Object y, Object z);
 | |
|     // Normal native
 | |
|     static native void arraycopy(Object src, int src_pos, Object dst, int dst_pos, int length);
 | |
|     // Normal native
 | |
|     native boolean compareAndSwapInt(Object obj, long offset, int expected, int newval);
 | |
|     // Normal native
 | |
|     static native int getText(long val1, Object obj1, long val2, Object obj2);
 | |
|     // Normal native
 | |
|     synchronized native Object[] getSinkPropertiesNative(String path);
 | |
| 
 | |
|     // Normal native
 | |
|     native Class<?> instanceMethodThatShouldReturnClass();
 | |
|     // Normal native
 | |
|     static native Class<?> staticMethodThatShouldReturnClass();
 | |
| 
 | |
|     // Normal native
 | |
|     native void instanceMethodThatShouldTakeClass(int i, Class<?> c);
 | |
|     // Normal native
 | |
|     static native void staticMethodThatShouldTakeClass(int i, Class<?> c);
 | |
| 
 | |
|     // TODO: These 3 seem like they could work for @CriticalNative as well if they were static.
 | |
|     // Normal native
 | |
|     native float checkFloats(float f1, float f2);
 | |
|     // Normal native
 | |
|     native void forceStackParameters(int i1, int i2, int i3, int i4, int i5, int i6, int i8, int i9,
 | |
|                                      float f1, float f2, float f3, float f4, float f5, float f6,
 | |
|                                      float f7, float f8, float f9);
 | |
|     // Normal native
 | |
|     native void checkParameterAlign(int i1, long l1);
 | |
| 
 | |
|     // Normal native
 | |
|     native void maxParamNumber(Object o0, Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7,
 | |
|         Object o8, Object o9, Object o10, Object o11, Object o12, Object o13, Object o14, Object o15,
 | |
|         Object o16, Object o17, Object o18, Object o19, Object o20, Object o21, Object o22, Object o23,
 | |
|         Object o24, Object o25, Object o26, Object o27, Object o28, Object o29, Object o30, Object o31,
 | |
|         Object o32, Object o33, Object o34, Object o35, Object o36, Object o37, Object o38, Object o39,
 | |
|         Object o40, Object o41, Object o42, Object o43, Object o44, Object o45, Object o46, Object o47,
 | |
|         Object o48, Object o49, Object o50, Object o51, Object o52, Object o53, Object o54, Object o55,
 | |
|         Object o56, Object o57, Object o58, Object o59, Object o60, Object o61, Object o62, Object o63,
 | |
|         Object o64, Object o65, Object o66, Object o67, Object o68, Object o69, Object o70, Object o71,
 | |
|         Object o72, Object o73, Object o74, Object o75, Object o76, Object o77, Object o78, Object o79,
 | |
|         Object o80, Object o81, Object o82, Object o83, Object o84, Object o85, Object o86, Object o87,
 | |
|         Object o88, Object o89, Object o90, Object o91, Object o92, Object o93, Object o94, Object o95,
 | |
|         Object o96, Object o97, Object o98, Object o99, Object o100, Object o101, Object o102, Object o103,
 | |
|         Object o104, Object o105, Object o106, Object o107, Object o108, Object o109, Object o110, Object o111,
 | |
|         Object o112, Object o113, Object o114, Object o115, Object o116, Object o117, Object o118, Object o119,
 | |
|         Object o120, Object o121, Object o122, Object o123, Object o124, Object o125, Object o126, Object o127,
 | |
|         Object o128, Object o129, Object o130, Object o131, Object o132, Object o133, Object o134, Object o135,
 | |
|         Object o136, Object o137, Object o138, Object o139, Object o140, Object o141, Object o142, Object o143,
 | |
|         Object o144, Object o145, Object o146, Object o147, Object o148, Object o149, Object o150, Object o151,
 | |
|         Object o152, Object o153, Object o154, Object o155, Object o156, Object o157, Object o158, Object o159,
 | |
|         Object o160, Object o161, Object o162, Object o163, Object o164, Object o165, Object o166, Object o167,
 | |
|         Object o168, Object o169, Object o170, Object o171, Object o172, Object o173, Object o174, Object o175,
 | |
|         Object o176, Object o177, Object o178, Object o179, Object o180, Object o181, Object o182, Object o183,
 | |
|         Object o184, Object o185, Object o186, Object o187, Object o188, Object o189, Object o190, Object o191,
 | |
|         Object o192, Object o193, Object o194, Object o195, Object o196, Object o197, Object o198, Object o199,
 | |
|         Object o200, Object o201, Object o202, Object o203, Object o204, Object o205, Object o206, Object o207,
 | |
|         Object o208, Object o209, Object o210, Object o211, Object o212, Object o213, Object o214, Object o215,
 | |
|         Object o216, Object o217, Object o218, Object o219, Object o220, Object o221, Object o222, Object o223,
 | |
|         Object o224, Object o225, Object o226, Object o227, Object o228, Object o229, Object o230, Object o231,
 | |
|         Object o232, Object o233, Object o234, Object o235, Object o236, Object o237, Object o238, Object o239,
 | |
|         Object o240, Object o241, Object o242, Object o243, Object o244, Object o245, Object o246, Object o247,
 | |
|         Object o248, Object o249, Object o250, Object o251, Object o252, Object o253);
 | |
| 
 | |
|     // Normal native
 | |
|     native void withoutImplementation();
 | |
|     // Normal native
 | |
|     native Object withoutImplementationRefReturn();
 | |
|     // Normal native
 | |
|     native static void staticWithoutImplementation();
 | |
| 
 | |
|     // Normal native
 | |
|     native static void stackArgsIntsFirst(int i1, int i2, int i3, int i4, int i5, int i6, int i7,
 | |
|         int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6,
 | |
|         float f7, float f8, float f9, float f10);
 | |
| 
 | |
|     // Normal native
 | |
|     native static void stackArgsFloatsFirst(float f1, float f2, float f3, float f4, float f5,
 | |
|         float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5,
 | |
|         int i6, int i7, int i8, int i9, int i10);
 | |
| 
 | |
|     // Normal native
 | |
|     native static void stackArgsMixed(int i1, float f1, int i2, float f2, int i3, float f3, int i4,
 | |
|         float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9,
 | |
|         float f9, int i10, float f10);
 | |
| 
 | |
|     // Normal native
 | |
|     static native double logD(double d);
 | |
|     // Normal native
 | |
|     static native float logF(float f);
 | |
|     // Normal native
 | |
|     static native boolean returnTrue();
 | |
|     // Normal native
 | |
|     static native boolean returnFalse();
 | |
|     // Normal native
 | |
|     static native int returnInt();
 | |
|     // Normal native
 | |
|     static native double returnDouble();
 | |
|     // Normal native
 | |
|     static native long returnLong();
 | |
| 
 | |
| 
 | |
| 
 | |
|     @FastNative
 | |
|     native void throwException_Fast();
 | |
|     @FastNative
 | |
|     native void foo_Fast();
 | |
|     @FastNative
 | |
|     native int bar_Fast(int count);
 | |
|     @FastNative
 | |
|     static native int sbar_Fast(int count);
 | |
|     @FastNative
 | |
|     native int fooI_Fast(int x);
 | |
|     @FastNative
 | |
|     native int fooII_Fast(int x, int y);
 | |
|     @FastNative
 | |
|     native long fooJJ_Fast(long x, long y);
 | |
|     @FastNative
 | |
|     native Object fooO_Fast(Object x);
 | |
|     @FastNative
 | |
|     native double fooDD_Fast(double x, double y);
 | |
|     @FastNative
 | |
|     native Object fooIOO_Fast(int x, Object y, Object z);
 | |
|     @FastNative
 | |
|     static native Object fooSIOO_Fast(int x, Object y, Object z);
 | |
|     @FastNative
 | |
|     static native int fooSII_Fast(int x, int y);
 | |
|     @FastNative
 | |
|     static native double fooSDD_Fast(double x, double y);
 | |
|     @FastNative
 | |
|     static native void arraycopy_Fast(Object src, int src_pos, Object dst, int dst_pos, int length);
 | |
|     @FastNative
 | |
|     native boolean compareAndSwapInt_Fast(Object obj, long offset, int expected, int newval);
 | |
|     @FastNative
 | |
|     static native int getText_Fast(long val1, Object obj1, long val2, Object obj2);
 | |
|     @FastNative
 | |
|     native Object[] getSinkPropertiesNative_Fast(String path);
 | |
| 
 | |
|     @FastNative
 | |
|     native Class<?> instanceMethodThatShouldReturnClass_Fast();
 | |
|     @FastNative
 | |
|     static native Class<?> staticMethodThatShouldReturnClass_Fast();
 | |
| 
 | |
|     @FastNative
 | |
|     native void instanceMethodThatShouldTakeClass_Fast(int i, Class<?> c);
 | |
|     @FastNative
 | |
|     static native void staticMethodThatShouldTakeClass_Fast(int i, Class<?> c);
 | |
| 
 | |
|     // TODO: These 3 seem like they could work for @CriticalNative as well if they were static.
 | |
|     @FastNative
 | |
|     native float checkFloats_Fast(float f1, float f2);
 | |
|     @FastNative
 | |
|     native void forceStackParameters_Fast(int i1, int i2, int i3, int i4, int i5, int i6, int i8, int i9,
 | |
|                                      float f1, float f2, float f3, float f4, float f5, float f6,
 | |
|                                      float f7, float f8, float f9);
 | |
|     @FastNative
 | |
|     native void checkParameterAlign_Fast(int i1, long l1);
 | |
| 
 | |
|     @FastNative
 | |
|     native void maxParamNumber_Fast(Object o0, Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7,
 | |
|         Object o8, Object o9, Object o10, Object o11, Object o12, Object o13, Object o14, Object o15,
 | |
|         Object o16, Object o17, Object o18, Object o19, Object o20, Object o21, Object o22, Object o23,
 | |
|         Object o24, Object o25, Object o26, Object o27, Object o28, Object o29, Object o30, Object o31,
 | |
|         Object o32, Object o33, Object o34, Object o35, Object o36, Object o37, Object o38, Object o39,
 | |
|         Object o40, Object o41, Object o42, Object o43, Object o44, Object o45, Object o46, Object o47,
 | |
|         Object o48, Object o49, Object o50, Object o51, Object o52, Object o53, Object o54, Object o55,
 | |
|         Object o56, Object o57, Object o58, Object o59, Object o60, Object o61, Object o62, Object o63,
 | |
|         Object o64, Object o65, Object o66, Object o67, Object o68, Object o69, Object o70, Object o71,
 | |
|         Object o72, Object o73, Object o74, Object o75, Object o76, Object o77, Object o78, Object o79,
 | |
|         Object o80, Object o81, Object o82, Object o83, Object o84, Object o85, Object o86, Object o87,
 | |
|         Object o88, Object o89, Object o90, Object o91, Object o92, Object o93, Object o94, Object o95,
 | |
|         Object o96, Object o97, Object o98, Object o99, Object o100, Object o101, Object o102, Object o103,
 | |
|         Object o104, Object o105, Object o106, Object o107, Object o108, Object o109, Object o110, Object o111,
 | |
|         Object o112, Object o113, Object o114, Object o115, Object o116, Object o117, Object o118, Object o119,
 | |
|         Object o120, Object o121, Object o122, Object o123, Object o124, Object o125, Object o126, Object o127,
 | |
|         Object o128, Object o129, Object o130, Object o131, Object o132, Object o133, Object o134, Object o135,
 | |
|         Object o136, Object o137, Object o138, Object o139, Object o140, Object o141, Object o142, Object o143,
 | |
|         Object o144, Object o145, Object o146, Object o147, Object o148, Object o149, Object o150, Object o151,
 | |
|         Object o152, Object o153, Object o154, Object o155, Object o156, Object o157, Object o158, Object o159,
 | |
|         Object o160, Object o161, Object o162, Object o163, Object o164, Object o165, Object o166, Object o167,
 | |
|         Object o168, Object o169, Object o170, Object o171, Object o172, Object o173, Object o174, Object o175,
 | |
|         Object o176, Object o177, Object o178, Object o179, Object o180, Object o181, Object o182, Object o183,
 | |
|         Object o184, Object o185, Object o186, Object o187, Object o188, Object o189, Object o190, Object o191,
 | |
|         Object o192, Object o193, Object o194, Object o195, Object o196, Object o197, Object o198, Object o199,
 | |
|         Object o200, Object o201, Object o202, Object o203, Object o204, Object o205, Object o206, Object o207,
 | |
|         Object o208, Object o209, Object o210, Object o211, Object o212, Object o213, Object o214, Object o215,
 | |
|         Object o216, Object o217, Object o218, Object o219, Object o220, Object o221, Object o222, Object o223,
 | |
|         Object o224, Object o225, Object o226, Object o227, Object o228, Object o229, Object o230, Object o231,
 | |
|         Object o232, Object o233, Object o234, Object o235, Object o236, Object o237, Object o238, Object o239,
 | |
|         Object o240, Object o241, Object o242, Object o243, Object o244, Object o245, Object o246, Object o247,
 | |
|         Object o248, Object o249, Object o250, Object o251, Object o252, Object o253);
 | |
| 
 | |
|     @FastNative
 | |
|     native void withoutImplementation_Fast();
 | |
|     @FastNative
 | |
|     native Object withoutImplementationRefReturn_Fast();
 | |
|     @FastNative
 | |
|     native static void staticWithoutImplementation_Fast();
 | |
| 
 | |
|     @FastNative
 | |
|     native static void stackArgsIntsFirst_Fast(int i1, int i2, int i3, int i4, int i5, int i6, int i7,
 | |
|         int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6,
 | |
|         float f7, float f8, float f9, float f10);
 | |
| 
 | |
|     @FastNative
 | |
|     native static void stackArgsFloatsFirst_Fast(float f1, float f2, float f3, float f4, float f5,
 | |
|         float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5,
 | |
|         int i6, int i7, int i8, int i9, int i10);
 | |
| 
 | |
|     @FastNative
 | |
|     native static void stackArgsMixed_Fast(int i1, float f1, int i2, float f2, int i3, float f3, int i4,
 | |
|         float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9,
 | |
|         float f9, int i10, float f10);
 | |
| 
 | |
|     @FastNative
 | |
|     static native double logD_Fast(double d);
 | |
|     @FastNative
 | |
|     static native float logF_Fast(float f);
 | |
|     @FastNative
 | |
|     static native boolean returnTrue_Fast();
 | |
|     @FastNative
 | |
|     static native boolean returnFalse_Fast();
 | |
|     @FastNative
 | |
|     static native int returnInt_Fast();
 | |
|     @FastNative
 | |
|     static native double returnDouble_Fast();
 | |
|     @FastNative
 | |
|     static native long returnLong_Fast();
 | |
| 
 | |
| 
 | |
| 
 | |
|     @CriticalNative
 | |
|     static native int sbar_Critical(int count);
 | |
|     @CriticalNative
 | |
|     static native int fooSII_Critical(int x, int y);
 | |
|     @CriticalNative
 | |
|     static native double fooSDD_Critical(double x, double y);
 | |
| 
 | |
|     @CriticalNative
 | |
|     native static void staticWithoutImplementation_Critical();
 | |
| 
 | |
|     @CriticalNative
 | |
|     native static void stackArgsIntsFirst_Critical(int i1, int i2, int i3, int i4, int i5, int i6, int i7,
 | |
|         int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6,
 | |
|         float f7, float f8, float f9, float f10);
 | |
| 
 | |
|     @CriticalNative
 | |
|     native static void stackArgsFloatsFirst_Critical(float f1, float f2, float f3, float f4, float f5,
 | |
|         float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5,
 | |
|         int i6, int i7, int i8, int i9, int i10);
 | |
| 
 | |
|     @CriticalNative
 | |
|     native static void stackArgsMixed_Critical(int i1, float f1, int i2, float f2, int i3, float f3, int i4,
 | |
|         float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9,
 | |
|         float f9, int i10, float f10);
 | |
| 
 | |
|     @CriticalNative
 | |
|     static native double logD_Critical(double d);
 | |
|     @CriticalNative
 | |
|     static native float logF_Critical(float f);
 | |
|     @CriticalNative
 | |
|     static native boolean returnTrue_Critical();
 | |
|     @CriticalNative
 | |
|     static native boolean returnFalse_Critical();
 | |
|     @CriticalNative
 | |
|     static native int returnInt_Critical();
 | |
|     @CriticalNative
 | |
|     static native double returnDouble_Critical();
 | |
|     @CriticalNative
 | |
|     static native long returnLong_Critical();
 | |
| 
 | |
| 
 | |
| 
 | |
|     // Check for @FastNative/@CriticalNative annotation presence [or lack of presence].
 | |
|     public static native void normalNative();
 | |
|     @FastNative
 | |
|     public static native void fastNative();
 | |
|     @CriticalNative
 | |
|     public static native void criticalNative();
 | |
| }
 |