1/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#include <jni.h>
18#include <stdlib.h> // for abort
19
20extern "C" jobject Java_dalvik_system_JniTest_returnThis(JNIEnv*, jobject obj) {
21  return obj;
22}
23
24extern "C" jclass Java_dalvik_system_JniTest_returnClass(JNIEnv*, jclass klass) {
25  return klass;
26}
27
28extern "C" jobject Java_dalvik_system_JniTest_returnObjectArgFrom16(
29    JNIEnv*, jobject, int arg_no,
30    jobject o1,  jobject o2,  jobject o3,  jobject o4,  jobject o5,
31    jobject o6,  jobject o7,  jobject o8,  jobject o9,  jobject o10,
32    jobject o11, jobject o12, jobject o13, jobject o14, jobject o15,
33    jobject o16) {
34  switch(arg_no){
35  case 0:  return o1;
36  case 1:  return o2;
37  case 2:  return o3;
38  case 3:  return o4;
39  case 4:  return o5;
40  case 5:  return o6;
41  case 6:  return o7;
42  case 7:  return o8;
43  case 8:  return o9;
44  case 9:  return o10;
45  case 10: return o11;
46  case 11: return o12;
47  case 12: return o13;
48  case 13: return o14;
49  case 14: return o15;
50  case 15: return o16;
51  default: abort();
52  }
53}
54
55extern "C" jboolean Java_dalvik_system_JniTest_returnBooleanArgFrom16(
56    JNIEnv*, jobject, int arg_no,
57    jboolean o1,  jboolean o2,  jboolean o3,  jboolean o4,  jboolean o5,
58    jboolean o6,  jboolean o7,  jboolean o8,  jboolean o9,  jboolean o10,
59    jboolean o11, jboolean o12, jboolean o13, jboolean o14, jboolean o15,
60    jboolean o16) {
61  switch(arg_no){
62  case 0:  return o1;
63  case 1:  return o2;
64  case 2:  return o3;
65  case 3:  return o4;
66  case 4:  return o5;
67  case 5:  return o6;
68  case 6:  return o7;
69  case 7:  return o8;
70  case 8:  return o9;
71  case 9:  return o10;
72  case 10: return o11;
73  case 11: return o12;
74  case 12: return o13;
75  case 13: return o14;
76  case 14: return o15;
77  case 15: return o16;
78  default: abort();
79  }
80}
81
82extern "C" jchar Java_dalvik_system_JniTest_returnCharArgFrom16(
83    JNIEnv*, jobject, int arg_no,
84    jchar o1,  jchar o2,  jchar o3,  jchar o4,  jchar o5,
85    jchar o6,  jchar o7,  jchar o8,  jchar o9,  jchar o10,
86    jchar o11, jchar o12, jchar o13, jchar o14, jchar o15,
87    jchar o16) {
88  switch(arg_no){
89  case 0:  return o1;
90  case 1:  return o2;
91  case 2:  return o3;
92  case 3:  return o4;
93  case 4:  return o5;
94  case 5:  return o6;
95  case 6:  return o7;
96  case 7:  return o8;
97  case 8:  return o9;
98  case 9:  return o10;
99  case 10: return o11;
100  case 11: return o12;
101  case 12: return o13;
102  case 13: return o14;
103  case 14: return o15;
104  case 15: return o16;
105  default: abort();
106  }
107}
108
109extern "C" jbyte Java_dalvik_system_JniTest_returnByteArgFrom16(
110    JNIEnv*, jobject, int arg_no,
111    jbyte o1,  jbyte o2,  jbyte o3,  jbyte o4,  jbyte o5,
112    jbyte o6,  jbyte o7,  jbyte o8,  jbyte o9,  jbyte o10,
113    jbyte o11, jbyte o12, jbyte o13, jbyte o14, jbyte o15,
114    jbyte o16) {
115  switch(arg_no){
116  case 0:  return o1;
117  case 1:  return o2;
118  case 2:  return o3;
119  case 3:  return o4;
120  case 4:  return o5;
121  case 5:  return o6;
122  case 6:  return o7;
123  case 7:  return o8;
124  case 8:  return o9;
125  case 9:  return o10;
126  case 10: return o11;
127  case 11: return o12;
128  case 12: return o13;
129  case 13: return o14;
130  case 14: return o15;
131  case 15: return o16;
132  default: abort();
133  }
134}
135
136extern "C" jshort Java_dalvik_system_JniTest_returnShortArgFrom16(
137    JNIEnv*, jobject, int arg_no,
138    jshort o1,  jshort o2,  jshort o3,  jshort o4,  jshort o5,
139    jshort o6,  jshort o7,  jshort o8,  jshort o9,  jshort o10,
140    jshort o11, jshort o12, jshort o13, jshort o14, jshort o15,
141    jshort o16) {
142  switch(arg_no){
143  case 0:  return o1;
144  case 1:  return o2;
145  case 2:  return o3;
146  case 3:  return o4;
147  case 4:  return o5;
148  case 5:  return o6;
149  case 6:  return o7;
150  case 7:  return o8;
151  case 8:  return o9;
152  case 9:  return o10;
153  case 10: return o11;
154  case 11: return o12;
155  case 12: return o13;
156  case 13: return o14;
157  case 14: return o15;
158  case 15: return o16;
159  default: abort();
160  }
161}
162
163extern "C" jint Java_dalvik_system_JniTest_returnIntArgFrom16(
164    JNIEnv*, jobject, int arg_no,
165    jint o1,  jint o2,  jint o3,  jint o4,  jint o5,
166    jint o6,  jint o7,  jint o8,  jint o9,  jint o10,
167    jint o11, jint o12, jint o13, jint o14, jint o15,
168    jint o16) {
169  switch(arg_no){
170  case 0:  return o1;
171  case 1:  return o2;
172  case 2:  return o3;
173  case 3:  return o4;
174  case 4:  return o5;
175  case 5:  return o6;
176  case 6:  return o7;
177  case 7:  return o8;
178  case 8:  return o9;
179  case 9:  return o10;
180  case 10: return o11;
181  case 11: return o12;
182  case 12: return o13;
183  case 13: return o14;
184  case 14: return o15;
185  case 15: return o16;
186  default: abort();
187  }
188}
189
190extern "C" jlong Java_dalvik_system_JniTest_returnLongArgFrom16(
191    JNIEnv*, jobject, int arg_no,
192    jlong o1,  jlong o2,  jlong o3,  jlong o4,  jlong o5,
193    jlong o6,  jlong o7,  jlong o8,  jlong o9,  jlong o10,
194    jlong o11, jlong o12, jlong o13, jlong o14, jlong o15,
195    jlong o16) {
196  switch(arg_no){
197  case 0:  return o1;
198  case 1:  return o2;
199  case 2:  return o3;
200  case 3:  return o4;
201  case 4:  return o5;
202  case 5:  return o6;
203  case 6:  return o7;
204  case 7:  return o8;
205  case 8:  return o9;
206  case 9:  return o10;
207  case 10: return o11;
208  case 11: return o12;
209  case 12: return o13;
210  case 13: return o14;
211  case 14: return o15;
212  case 15: return o16;
213  default: abort();
214  }
215}
216
217extern "C" jfloat Java_dalvik_system_JniTest_returnFloatArgFrom16(
218    JNIEnv*, jobject, int arg_no,
219    jfloat o1,  jfloat o2,  jfloat o3,  jfloat o4,  jfloat o5,
220    jfloat o6,  jfloat o7,  jfloat o8,  jfloat o9,  jfloat o10,
221    jfloat o11, jfloat o12, jfloat o13, jfloat o14, jfloat o15,
222    jfloat o16) {
223  switch(arg_no){
224  case 0:  return o1;
225  case 1:  return o2;
226  case 2:  return o3;
227  case 3:  return o4;
228  case 4:  return o5;
229  case 5:  return o6;
230  case 6:  return o7;
231  case 7:  return o8;
232  case 8:  return o9;
233  case 9:  return o10;
234  case 10: return o11;
235  case 11: return o12;
236  case 12: return o13;
237  case 13: return o14;
238  case 14: return o15;
239  case 15: return o16;
240  default: abort();
241  }
242}
243
244extern "C" jdouble Java_dalvik_system_JniTest_returnDoubleArgFrom16(
245    JNIEnv*, jobject, int arg_no,
246    jdouble o1,  jdouble o2,  jdouble o3,  jdouble o4,  jdouble o5,
247    jdouble o6,  jdouble o7,  jdouble o8,  jdouble o9,  jdouble o10,
248    jdouble o11, jdouble o12, jdouble o13, jdouble o14, jdouble o15,
249    jdouble o16) {
250  switch(arg_no){
251  case 0:  return o1;
252  case 1:  return o2;
253  case 2:  return o3;
254  case 3:  return o4;
255  case 4:  return o5;
256  case 5:  return o6;
257  case 6:  return o7;
258  case 7:  return o8;
259  case 8:  return o9;
260  case 9:  return o10;
261  case 10: return o11;
262  case 11: return o12;
263  case 12: return o13;
264  case 13: return o14;
265  case 14: return o15;
266  case 15: return o16;
267  default: abort();
268  }
269}
270
271extern "C" jclass Java_dalvik_system_JniTest_envGetSuperclass(
272    JNIEnv* env, jobject, jclass clazz) {
273  return env->GetSuperclass(clazz);
274}
275