source: CIVL/examples/translation/openclversion2.15/arrKernels.cvl@ 9d029b9

1.23 2.0 acw/focus-triggers main test-branch
Last change on this file since 9d029b9 was 193af13, checked in by Jacob Trieu <fuufusuu@…>, 12 years ago

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@1373 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.5 KB
Line 
1
2#include "cl.cvl"
3#include <stdio.h>
4#include <stdlib.h>
5#include <string.h>
6#include <civlc.h>
7
8typedef struct
9{
10 void * param[2];
11}args;
12
13cl_kernel clCreateKernel(args * argument, char * function)
14{
15 cl_kernel kernel;
16 kernel.arguments = argument;
17 kernel.method = function;
18
19 return kernel;
20}
21
22void clReleaseKernel(cl_kernel kernel)
23{
24 for (int i = 0; i < 2; i++)
25 {
26 free(((args*)kernel.arguments)->param[i]);
27 }
28}
29
30int main(int argc, char** argv)
31{
32 args * arguments;
33 arguments = (args*)malloc(sizeof(args));
34
35 int star = 1;
36
37 int * one = (int*)malloc(sizeof(int));
38 memcpy(one, &star, sizeof(int));
39
40 cl_kernel kernel;
41 kernel = clCreateKernel(arguments, "nothing");
42
43 ((args*)kernel.arguments)->param[0] = (int*)malloc(sizeof(int));
44 memcpy(((args*)kernel.arguments)->param[0], &star, sizeof(int));
45
46 ((args*)kernel.arguments)->param[1] = one;
47
48 clReleaseKernel(kernel);
49
50 printf("single kernel works\n");
51
52 //cl_kernel *kernels = (cl_kernel*)malloc(3 * sizeof(cl_kernel));
53 cl_kernel kernels[3];
54
55 memcpy(one, &star, sizeof(int));
56 printf("%d, %d", star, *one);
57
58
59
60 for (int i = 0; i < 3; i++)
61 {
62 ((args*)kernels[i].arguments)->param[0] = (int*)malloc(sizeof(int));
63 memcpy(((args*)kernels[i].arguments)->param[0], &star, sizeof(int));
64
65 ((args*)kernels[i].arguments)->param[1] = one;
66 }
67
68 printf("assigned properly\n");
69
70 for (int i = 0; i < 3; i++)
71 {
72 clReleaseKernel(kernels[i]);
73 }
74
75
76 free(arguments);
77 return 0;
78}
79
80
Note: See TracBrowser for help on using the repository browser.