Updated for openjdk-19-internal
[panamaz] / test-api / api.c
1
2 #include <stdio.h>
3 #include <string.h>
4 #include "api.h"
5
6 static void funca(int a) {
7         printf("funca: %d\n", a);
8 }
9
10 static int funcb(int b) {
11         printf("funcb: %d\n", b);
12         return b * b;
13 }
14
15 static int funcc(float f) {
16         printf("funcc: %f\n", f);
17         return (int)f;
18 }
19
20 void *api_func(const char *name) {
21         printf("requesting function %s\n", name);
22
23         if (strcmp(name, "funca") == 0)
24                 return funca;
25         else if (strcmp(name, "funcb") == 0)
26                 return funcb;
27         else if (strcmp(name, "funcc") == 0)
28                 return funcc;
29         else
30                 return NULL;
31 }
32
33 void print_data(struct data *data) {
34         while (data) {
35                 printf("%p: a=%d b=%d c=%d d=%d", data, data->a, data->b, data->c, data->d);
36                 if (data->test_a)
37                         printf(" data->test_a()=%d", data->test_a());
38                 printf("\n");
39                 data = data->next;
40         }
41 }
42
43 struct api *api_create(void) {
44         struct api *api = malloc(sizeof(*api));
45
46         api->funca = funca;
47         api->funcb = funcb;
48         api->funcc = funcc;
49
50         return api;
51 }