1 #ifndef _PARAM_STRUCT_H_ 2 #define _PARAM_STRUCT_H_ 3 4 #include<CL/cl.h> 5 #include<CL/cl_gl.h> 6 7 struct clCreateCommandQueue_st 8 { 9 cl_context context; 10 cl_device_id device; 11 cl_command_queue_properties properties; 12 cl_int *errcode_ret; 13 }; 14 15 struct clSetCommandQueueProperty_st 16 { 17 cl_command_queue command_queue; 18 cl_command_queue_properties properties; 19 cl_bool enable; 20 cl_command_queue_properties *old_properties; 21 }; 22 23 struct clGetCommandQueueInfo_st 24 { 25 cl_command_queue command_queue; 26 cl_command_queue_info param_name; 27 size_t param_value_size; 28 void *param_value; 29 size_t *param_value_size_ret; 30 }; 31 32 struct clCreateContext_st 33 { 34 const cl_context_properties *properties; 35 cl_uint num_devices; 36 const cl_device_id *devices; 37 void (CL_CALLBACK*pfn_notify)(const char *errinfo, const void *private_info, size_t cb, void *user_data); 38 void *user_data; 39 cl_int *errcode_ret; 40 }; 41 42 struct clCreateContextFromType_st 43 { 44 const cl_context_properties *properties; 45 cl_device_type device_type; 46 void (CL_CALLBACK *pfn_notify)(const char *errinfo, const void *private_info, size_t cb,void *user_data); 47 void *user_data; 48 cl_int *errcode_ret; 49 }; 50 51 struct clRetainContext_st 52 { 53 cl_context context; 54 }; 55 56 struct clReleaseContext_st 57 { 58 cl_context context; 59 }; 60 61 struct clGetContextInfo_st 62 { 63 cl_context context; 64 cl_context_info param_name; 65 size_t param_value_size; 66 void *param_value; 67 size_t *param_value_size_ret; 68 }; 69 70 struct clSetContextDestructorCallback_st 71 { 72 cl_context context; 73 void (CL_CALLBACK *pfn_notify)(cl_context context, void *user_data); 74 void *user_data; 75 }; 76 77 struct clGetPlatformIDs_st 78 { 79 cl_uint num_entries; 80 cl_platform_id *platforms; 81 cl_uint *num_platforms; 82 }; 83 84 struct clGetPlatformInfo_st 85 { 86 cl_platform_id platform; 87 cl_platform_info param_name; 88 size_t param_value_size; 89 void *param_value; 90 size_t *param_value_size_ret; 91 }; 92 93 struct clGetDeviceIDs_st 94 { 95 cl_platform_id platform; 96 cl_device_type device_type; 97 cl_uint num_entries; 98 cl_device_id *devices; 99 cl_uint *num_devices; 100 }; 101 102 struct clRetainCommandQueue_st 103 { 104 cl_command_queue command_queue; 105 }; 106 107 struct clReleaseCommandQueue_st 108 { 109 cl_command_queue command_queue; 110 }; 111 112 #define NUM_ITEMS_clCreateCommandQueue 1 113 #define NUM_ITEMS_clRetainCommandQueue 1 114 #define NUM_ITEMS_clReleaseCommandQueue 1 115 #define NUM_ITEMS_clGetCommandQueueInfo 1 116 #define NUM_ITEMS_clSetCommandQueueProperty 1 117 #define NUM_ITEMS_clCreateContext 1 118 #define NUM_ITEMS_clCreateContextFromType 1 119 #define NUM_ITEMS_clRetainContext 1 120 #define NUM_ITEMS_clReleaseContext 1 121 #define NUM_ITEMS_clGetContextInfo 1 122 #define NUM_ITEMS_clSetContextDestructorCallback 1 123 #define NUM_ITEMS_clGetPlatformIDs 1 124 #define NUM_ITEMS_clGetPlatformInfo 1 125 #define NUM_ITEMS_clGetDeviceIDs 1 126 #define NUM_ITEMS_clGetDeviceInfo 1 127 #define NUM_ITEMS_clCreateSubDevices 1 128 #define NUM_ITEMS_clRetainDevice 1 129 #define NUM_ITEMS_clReleaseDevice 1 130 131 struct clGetDeviceInfo_st 132 { 133 cl_device_id device; 134 cl_device_info param_name; 135 size_t param_value_size; 136 void *param_value; 137 size_t *param_value_size_ret; 138 }; 139 140 struct clCreateSubDevices_st 141 { 142 cl_device_id in_device; 143 cl_device_partition_property *properties; 144 cl_uint num_entries; 145 cl_device_id *out_devices; 146 cl_uint *num_devices; 147 }; 148 149 struct clRetainDevice_st 150 { 151 cl_device_id device; 152 }; 153 154 struct clReleaseDevice_st 155 { 156 cl_device_id device; 157 }; 158 159 160 #define NUM_ITEMS_clCreateBuffer 1 161 #define NUM_ITEMS_clCreateBufferWithProperties 1 162 #define NUM_ITEMS_clCreateSubBuffer 1 163 #define NUM_ITEMS_clEnqueueReadBuffer 1 164 #define NUM_ITEMS_clEnqueueWriteBuffer 1 165 #define NUM_ITEMS_clEnqueueReadBufferRect 1 166 #define NUM_ITEMS_clEnqueueWriteBufferRect 1 167 #define NUM_ITEMS_clEnqueueFillBuffer 1 168 #define NUM_ITEMS_clEnqueueCopyBuffer 1 169 #define NUM_ITEMS_clEnqueueCopyBufferRect 1 170 #define NUM_ITEMS_clEnqueueMapBuffer 1 171 #define NUM_ITEMS_clRetainMemObject 1 172 #define NUM_ITEMS_clReleaseMemObject 1 173 #define NUM_ITEMS_clSetMemObjectDestructorCallback 1 174 #define NUM_ITEMS_clEnqueueUnmapMemObject 1 175 #define NUM_ITEMS_clGetMemObjectInfo 1 176 177 struct clCreateBuffer_st 178 { 179 cl_context context; 180 cl_mem_flags flags; 181 size_t size; 182 void *host_ptr; 183 cl_int *errcode_ret; 184 }; 185 186 struct clCreateBufferWithProperties_st 187 { 188 cl_context context; 189 const cl_mem_properties * properties; 190 cl_mem_flags flags; 191 size_t size; 192 void *host_ptr; 193 cl_int *errcode_ret; 194 }; 195 196 struct clCreateSubBuffer_st 197 { 198 cl_mem buffer; 199 cl_mem_flags flags; 200 cl_buffer_create_type buffer_create_type; 201 const void *buffer_create_info; 202 cl_int *errcode_ret; 203 }; 204 205 struct clEnqueueReadBuffer_st 206 { 207 cl_command_queue command_queue; 208 cl_mem buffer; 209 cl_bool blocking_read; 210 size_t offset; 211 size_t cb; 212 void *ptr; 213 cl_uint num_events_in_wait_list; 214 const cl_event *event_wait_list; 215 cl_event *event; 216 }; 217 218 struct clEnqueueWriteBuffer_st 219 { 220 cl_command_queue command_queue; 221 cl_mem buffer; 222 cl_bool blocking_write; 223 size_t offset; 224 size_t cb; 225 const void *ptr; 226 cl_uint num_events_in_wait_list; 227 const cl_event *event_wait_list; 228 cl_event *event; 229 }; 230 231 struct clEnqueueReadBufferRect_st 232 { 233 cl_command_queue command_queue; 234 cl_mem buffer; 235 cl_bool blocking_read; 236 const size_t * buffer_offset; 237 const size_t * host_offset; 238 const size_t * region; 239 size_t buffer_row_pitch; 240 size_t buffer_slice_pitch; 241 size_t host_row_pitch; 242 size_t host_slice_pitch; 243 void *ptr; 244 cl_uint num_events_in_wait_list; 245 const cl_event *event_wait_list; 246 cl_event *event; 247 }; 248 249 struct clEnqueueWriteBufferRect_st 250 { 251 cl_command_queue command_queue; 252 cl_mem buffer; 253 cl_bool blocking_write; 254 const size_t *buffer_offset; 255 const size_t *host_offset; 256 const size_t *region; 257 size_t buffer_row_pitch; 258 size_t buffer_slice_pitch; 259 size_t host_row_pitch; 260 size_t host_slice_pitch; 261 void *ptr; 262 cl_uint num_events_in_wait_list; 263 const cl_event *event_wait_list; 264 cl_event *event; 265 }; 266 267 struct clEnqueueFillBuffer_st 268 { 269 cl_command_queue command_queue; 270 cl_mem buffer; 271 const void *pattern; 272 size_t pattern_size; 273 size_t offset; 274 size_t cb; 275 cl_uint num_events_in_wait_list; 276 const cl_event *event_wait_list; 277 cl_event *event; 278 }; 279 280 struct clEnqueueCopyBuffer_st 281 { 282 cl_command_queue command_queue; 283 cl_mem src_buffer; 284 cl_mem dst_buffer; 285 size_t src_offset; 286 size_t dst_offset; 287 size_t cb; 288 cl_uint num_events_in_wait_list; 289 const cl_event *event_wait_list; 290 cl_event *event; 291 }; 292 293 struct clEnqueueCopyBufferRect_st 294 { 295 cl_command_queue command_queue; 296 cl_mem src_buffer; 297 cl_mem dst_buffer; 298 const size_t *src_origin; 299 const size_t *dst_origin; 300 const size_t *region; 301 size_t src_row_pitch; 302 size_t src_slice_pitch; 303 size_t dst_row_pitch; 304 size_t dst_slice_pitch; 305 cl_uint num_events_in_wait_list; 306 const cl_event *event_wait_list; 307 cl_event *event; 308 }; 309 310 struct clEnqueueMapBuffer_st 311 { 312 cl_command_queue command_queue; 313 cl_mem buffer; 314 cl_bool blocking_map; 315 cl_map_flags map_flags; 316 size_t offset; 317 size_t cb; 318 cl_uint num_events_in_wait_list; 319 const cl_event *event_wait_list; 320 cl_event *event; 321 cl_int *errcode_ret; 322 }; 323 324 struct clRetainMemObject_st 325 { 326 cl_mem memobj; 327 }; 328 329 struct clReleaseMemObject_st 330 { 331 cl_mem memobj; 332 }; 333 334 struct clSetMemObjectDestructorCallback_st 335 { 336 cl_mem memobj; 337 void (CL_CALLBACK *pfn_notify)(cl_mem memobj, void *user_data); 338 void *user_data; 339 }; 340 341 struct clEnqueueUnmapMemObject_st 342 { 343 cl_command_queue command_queue; 344 cl_mem memobj; 345 void *mapped_ptr; 346 cl_uint num_events_in_wait_list; 347 const cl_event *event_wait_list; 348 cl_event *event; 349 }; 350 351 struct clGetMemObjectInfo_st 352 { 353 cl_mem memobj; 354 cl_mem_info param_name; 355 size_t param_value_size; 356 void *param_value; 357 size_t *param_value_size_ret; 358 }; 359 360 #define NUM_ITEMS_clCreateProgramWithSource 1 361 #define NUM_ITEMS_clCreateProgramWithBinary 1 362 #define NUM_ITEMS_clCreateProgramWithBuiltInKernels 1 363 #define NUM_ITEMS_clRetainProgram 1 364 #define NUM_ITEMS_clReleaseProgram 1 365 #define NUM_ITEMS_clBuildProgram 1 366 #define NUM_ITEMS_clCompileProgram 1 367 #define NUM_ITEMS_clLinkProgram 1 368 #define NUM_ITEMS_clUnloadPlatformCompiler 1 369 #define NUM_ITEMS_clGetProgramInfo 1 370 #define NUM_ITEMS_clGetProgramBuildInfo 1 371 #define NUM_ITEMS_clUnloadCompiler 1 372 #define NUM_ITEMS_clGetExtensionFunctionAddress 1 373 #define NUM_ITEMS_clGetExtensionFunctionAddressForPlatform 1 374 375 struct clCreateProgramWithSource_st 376 { 377 cl_context context; 378 cl_uint count; 379 const char **strings; 380 const size_t *lengths; 381 cl_int *errcode_ret; 382 }; 383 384 struct clCreateProgramWithBinary_st 385 { 386 cl_context context; 387 cl_uint num_devices; 388 const cl_device_id *device_list; 389 const size_t *lengths; 390 const unsigned char **binaries; 391 cl_int *binary_status; 392 cl_int *errcode_ret; 393 }; 394 395 struct clCreateProgramWithBuiltInKernels_st 396 { 397 cl_context context; 398 cl_uint num_devices; 399 const cl_device_id *device_list; 400 const char *kernel_names; 401 cl_int *errcode_ret; 402 }; 403 404 struct clRetainProgram_st 405 { 406 cl_program program; 407 }; 408 409 struct clReleaseProgram_st 410 { 411 cl_program program; 412 }; 413 414 struct clBuildProgram_st 415 { 416 cl_program program; 417 cl_uint num_devices; 418 const cl_device_id *device_list; 419 const char *options; 420 void (CL_CALLBACK*pfn_notify)(cl_program program, void *user_data); 421 void *user_data; 422 }; 423 424 struct clCompileProgram_st 425 { 426 cl_program program; 427 cl_uint num_devices; 428 const cl_device_id *device_list; 429 const char *options; 430 cl_uint num_input_headers; 431 const cl_program *headers; 432 const char **header_include_names; 433 void (CL_CALLBACK *pfn_notify)(cl_program program, void * user_data); 434 void *user_data; 435 }; 436 437 struct clLinkProgram_st 438 { 439 cl_context context; 440 cl_uint num_devices; 441 const cl_device_id *device_list; 442 const char *options; 443 cl_uint num_input_programs; 444 const cl_program *input_programs; 445 void (CL_CALLBACK *pfn_notify)(cl_program program, void *user_data); 446 void *user_data; 447 cl_int *errcode_ret; 448 }; 449 450 struct clUnloadPlatformCompiler_st 451 { 452 cl_platform_id platform; 453 }; 454 455 #if 0 456 struct clUnloadCompiler_st 457 { 458 void ; 459 }; 460 #endif 461 462 struct clGetExtensionFunctionAddress_st 463 { 464 const char *func_name; 465 }; 466 467 struct clGetExtensionFunctionAddressForPlatform_st 468 { 469 cl_platform_id platform; 470 const char *func_name; 471 }; 472 473 struct clGetProgramInfo_st 474 { 475 cl_program program; 476 cl_program_info param_name; 477 size_t param_value_size; 478 void *param_value; 479 size_t *param_value_size_ret; 480 }; 481 482 struct clGetProgramBuildInfo_st 483 { 484 cl_program program; 485 cl_device_id device; 486 cl_program_build_info param_name; 487 size_t param_value_size; 488 void *param_value; 489 size_t *param_value_size_ret; 490 }; 491 492 #define NUM_ITEMS_clCreateImage2D 1 493 #define NUM_ITEMS_clCreateImage3D 1 494 #define NUM_ITEMS_clCreateImage 1 495 #define NUM_ITEMS_clCreateImageWithProperties 1 496 #define NUM_ITEMS_clGetSupportedImageFormats 1 497 #define NUM_ITEMS_clEnqueueCopyImageToBuffer 1 498 #define NUM_ITEMS_clEnqueueCopyBufferToImage 1 499 #define NUM_ITEMS_clEnqueueMapImage 1 500 #define NUM_ITEMS_clEnqueueReadImage 1 501 #define NUM_ITEMS_clEnqueueWriteImage 1 502 #define NUM_ITEMS_clEnqueueFillImage 1 503 #define NUM_ITEMS_clEnqueueCopyImage 1 504 #define NUM_ITEMS_clGetMemObjectInfo 1 505 #define NUM_ITEMS_clGetImageInfo 1 506 507 struct clCreateImage_st 508 { 509 cl_context context; 510 cl_mem_flags flags; 511 const cl_image_format *image_format; 512 const cl_image_desc *image_desc; 513 void *host_ptr; 514 cl_int *errcode_ret; 515 }; 516 517 struct clCreateImageWithProperties_st 518 { 519 cl_context context; 520 const cl_mem_properties * properties; 521 cl_mem_flags flags; 522 const cl_image_format *image_format; 523 const cl_image_desc *image_desc; 524 void *host_ptr; 525 cl_int *errcode_ret; 526 }; 527 528 struct clCreateImage2D_st 529 { 530 cl_context context; 531 cl_mem_flags flags; 532 const cl_image_format *image_format; 533 size_t image_width; 534 size_t image_height; 535 size_t image_row_pitch; 536 void *host_ptr; 537 cl_int *errcode_ret; 538 }; 539 540 struct clCreateImage3D_st 541 { 542 cl_context context; 543 cl_mem_flags flags; 544 const cl_image_format *image_format; 545 size_t image_width; 546 size_t image_height; 547 size_t image_depth; 548 size_t image_row_pitch; 549 size_t image_slice_pitch; 550 void *host_ptr; 551 cl_int *errcode_ret; 552 }; 553 554 struct clGetSupportedImageFormats_st 555 { 556 cl_context context; 557 cl_mem_flags flags; 558 cl_mem_object_type image_type; 559 cl_uint num_entries; 560 cl_image_format *image_formats; 561 cl_uint *num_image_formats; 562 }; 563 564 struct clEnqueueCopyImageToBuffer_st 565 { 566 cl_command_queue command_queue; 567 cl_mem src_image; 568 cl_mem dst_buffer; 569 const size_t *src_origin; 570 const size_t *region; 571 size_t dst_offset; 572 cl_uint num_events_in_wait_list; 573 const cl_event *event_wait_list; 574 cl_event *event; 575 }; 576 577 struct clEnqueueCopyBufferToImage_st 578 { 579 cl_command_queue command_queue; 580 cl_mem src_buffer; 581 cl_mem dst_image; 582 size_t src_offset; 583 const size_t *dst_origin; 584 const size_t *region; 585 cl_uint num_events_in_wait_list; 586 const cl_event *event_wait_list; 587 cl_event *event; 588 }; 589 590 struct clEnqueueMapImage_st 591 { 592 cl_command_queue command_queue; 593 cl_mem image; 594 cl_bool blocking_map; 595 cl_map_flags map_flags; 596 const size_t *origin; 597 const size_t *region; 598 size_t *image_row_pitch; 599 size_t *image_slice_pitch; 600 cl_uint num_events_in_wait_list; 601 const cl_event *event_wait_list; 602 cl_event *event; 603 cl_int *errcode_ret; 604 }; 605 606 struct clEnqueueReadImage_st 607 { 608 cl_command_queue command_queue; 609 cl_mem image; 610 cl_bool blocking_read; 611 const size_t *origin; 612 const size_t *region; 613 size_t row_pitch; 614 size_t slice_pitch; 615 void *ptr; 616 cl_uint num_events_in_wait_list; 617 const cl_event *event_wait_list; 618 cl_event *event; 619 }; 620 621 struct clEnqueueWriteImage_st 622 { 623 cl_command_queue command_queue; 624 cl_mem image; 625 cl_bool blocking_write; 626 const size_t *origin; 627 const size_t *region; 628 size_t input_row_pitch; 629 size_t input_slice_pitch; 630 const void *ptr; 631 cl_uint num_events_in_wait_list; 632 const cl_event *event_wait_list; 633 cl_event *event; 634 }; 635 636 struct clEnqueueFillImage_st 637 { 638 cl_command_queue command_queue; 639 cl_mem image; 640 const void *fill_color; 641 const size_t *origin; 642 const size_t *region; 643 cl_uint num_events_in_wait_list; 644 const cl_event *event_wait_list; 645 cl_event *event; 646 }; 647 648 struct clEnqueueCopyImage_st 649 { 650 cl_command_queue command_queue; 651 cl_mem src_image; 652 cl_mem dst_image; 653 const size_t *src_origin; 654 const size_t *dst_origin; 655 const size_t *region; 656 cl_uint num_events_in_wait_list; 657 const cl_event *event_wait_list; 658 cl_event *event; 659 }; 660 661 #if 0 662 struct clGetMemObjectInfo_st 663 { 664 cl_mem memobj; 665 cl_mem_info param_name; 666 size_t param_value_size; 667 void *param_value; 668 size_t *param_value_size_ret; 669 }; 670 #endif 671 672 struct clGetImageInfo_st 673 { 674 cl_mem image; 675 cl_image_info param_name; 676 size_t param_value_size; 677 void *param_value; 678 size_t *param_value_size_ret; 679 }; 680 681 #define NUM_ITEMS_clCreateSampler 1 682 #define NUM_ITEMS_clRetainSampler 1 683 #define NUM_ITEMS_clReleaseSampler 1 684 #define NUM_ITEMS_clGetSamplerInfo 1 685 686 struct clCreateSampler_st 687 { 688 cl_context context; 689 cl_bool normalized_coords; 690 cl_addressing_mode addressing_mode; 691 cl_filter_mode filter_mode; 692 cl_int *errcode_ret; 693 }; 694 695 struct clRetainSampler_st 696 { 697 cl_sampler sampler; 698 }; 699 700 struct clReleaseSampler_st 701 { 702 cl_sampler sampler; 703 }; 704 705 struct clGetSamplerInfo_st 706 { 707 cl_sampler sampler; 708 cl_sampler_info param_name; 709 size_t param_value_size; 710 void *param_value; 711 size_t *param_value_size_ret; 712 }; 713 714 #define NUM_ITEMS_clCreateKernel 1 715 #define NUM_ITEMS_clCreateKernelsInProgram 1 716 #define NUM_ITEMS_clRetainKernel 1 717 #define NUM_ITEMS_clReleaseKernel 1 718 719 struct clCreateKernel_st 720 { 721 cl_program program; 722 const char *kernel_name; 723 cl_int *errcode_ret; 724 }; 725 726 struct clCreateKernelsInProgram_st 727 { 728 cl_program program; 729 cl_uint num_kernels; 730 cl_kernel *kernels; 731 cl_uint *num_kernels_ret; 732 }; 733 734 struct clRetainKernel_st 735 { 736 cl_kernel kernel; 737 }; 738 739 struct clReleaseKernel_st 740 { 741 cl_kernel kernel; 742 }; 743 744 #define NUM_ITEMS_clSetKernelArg 1 745 #define NUM_ITEMS_clGetKernelInfo 1 746 #define NUM_ITEMS_clGetKernelArgInfo 1 747 #define NUM_ITEMS_clGetKernelWorkGroupInfo 1 748 749 struct clSetKernelArg_st 750 { 751 cl_kernel kernel; 752 cl_uint arg_index; 753 size_t arg_size; 754 const void *arg_value; 755 }; 756 757 struct clGetKernelInfo_st 758 { 759 cl_kernel kernel; 760 cl_kernel_info param_name; 761 size_t param_value_size; 762 void *param_value; 763 size_t *param_value_size_ret; 764 }; 765 766 struct clGetKernelArgInfo_st 767 { 768 cl_kernel kernel; 769 cl_uint arg_indx; 770 cl_kernel_arg_info param_name; 771 size_t param_value_size; 772 void *param_value; 773 size_t *param_value_size_ret; 774 }; 775 776 struct clGetKernelWorkGroupInfo_st 777 { 778 cl_kernel kernel; 779 cl_device_id device; 780 cl_kernel_work_group_info param_name; 781 size_t param_value_size; 782 void *param_value; 783 size_t *param_value_size_ret; 784 }; 785 786 #define NUM_ITEMS_clEnqueueMigrateMemObjects 1 787 #define NUM_ITEMS_clEnqueueNDRangeKernel 1 788 #define NUM_ITEMS_clEnqueueTask 1 789 #define NUM_ITEMS_clEnqueueNativeKernel 1 790 791 struct clEnqueueMigrateMemObjects_st 792 { 793 cl_command_queue command_queue; 794 cl_uint num_mem_objects; 795 const cl_mem *mem_objects; 796 cl_mem_migration_flags flags; 797 cl_uint num_events_in_wait_list; 798 const cl_event *event_wait_list; 799 cl_event *event; 800 }; 801 802 struct clEnqueueNDRangeKernel_st 803 { 804 cl_command_queue command_queue; 805 cl_kernel kernel; 806 cl_uint work_dim; 807 const size_t *global_work_offset; 808 const size_t *global_work_size; 809 const size_t *local_work_size; 810 cl_uint num_events_in_wait_list; 811 const cl_event *event_wait_list; 812 cl_event *event; 813 }; 814 815 struct clEnqueueTask_st 816 { 817 cl_command_queue command_queue; 818 cl_kernel kernel; 819 cl_uint num_events_in_wait_list; 820 const cl_event *event_wait_list; 821 cl_event *event; 822 }; 823 824 struct clEnqueueNativeKernel_st 825 { 826 cl_command_queue command_queue; 827 void (CL_CALLBACK *user_func)(void *); 828 void *args; 829 size_t cb_args; 830 cl_uint num_mem_objects; 831 const cl_mem *mem_list; 832 const void **args_mem_loc; 833 cl_uint num_events_in_wait_list; 834 const cl_event *event_wait_list; 835 cl_event *event; 836 }; 837 838 #define NUM_ITEMS_clCreateUserEvent 1 839 #define NUM_ITEMS_clSetUserEventStatus 1 840 #define NUM_ITEMS_clWaitForEvents 1 841 #define NUM_ITEMS_clGetEventInfo 1 842 #define NUM_ITEMS_clSetEventCallback 1 843 #define NUM_ITEMS_clRetainEvent 1 844 #define NUM_ITEMS_clReleaseEvent 1 845 846 struct clCreateUserEvent_st 847 { 848 cl_context context; 849 cl_int *errcode_ret; 850 }; 851 852 struct clSetUserEventStatus_st 853 { 854 cl_event event; 855 cl_int execution_status; 856 }; 857 858 struct clWaitForEvents_st 859 { 860 cl_uint num_events; 861 const cl_event *event_list; 862 }; 863 864 struct clGetEventInfo_st 865 { 866 cl_event event; 867 cl_event_info param_name; 868 size_t param_value_size; 869 void *param_value; 870 size_t *param_value_size_ret; 871 }; 872 873 struct clSetEventCallback_st 874 { 875 cl_event event; 876 cl_int command_exec_callback_type; 877 void (CL_CALLBACK *pfn_event_notify)(cl_event event, cl_int event_command_exec_status,void *user_data); 878 void *user_data; 879 }; 880 881 struct clRetainEvent_st 882 { 883 cl_event event; 884 }; 885 886 struct clReleaseEvent_st 887 { 888 cl_event event; 889 }; 890 891 #define NUM_ITEMS_clEnqueueMarker 1 892 #define NUM_ITEMS_clEnqueueWaitForEvents 1 893 #define NUM_ITEMS_clEnqueueBarrier 1 894 #define NUM_ITEMS_clEnqueueMarkerWithWaitList 1 895 #define NUM_ITEMS_clEnqueueBarrierWithWaitList 1 896 897 struct clEnqueueMarker_st 898 { 899 cl_command_queue command_queue; 900 cl_event *event; 901 }; 902 903 struct clEnqueueWaitForEvents_st 904 { 905 cl_command_queue command_queue; 906 cl_uint num_events; 907 const cl_event *event_list; 908 }; 909 910 struct clEnqueueBarrier_st 911 { 912 cl_command_queue command_queue; 913 }; 914 915 struct clEnqueueMarkerWithWaitList_st 916 { 917 cl_command_queue command_queue; 918 cl_uint num_events_in_wait_list; 919 const cl_event *event_wait_list; 920 cl_event *event; 921 }; 922 923 struct clEnqueueBarrierWithWaitList_st 924 { 925 cl_command_queue command_queue; 926 cl_uint num_events_in_wait_list; 927 const cl_event *event_wait_list; 928 cl_event *event; 929 }; 930 931 #define NUM_ITEMS_clGetEventProfilingInfo 1 932 933 struct clGetEventProfilingInfo_st 934 { 935 cl_event event; 936 cl_profiling_info param_name; 937 size_t param_value_size; 938 void *param_value; 939 size_t *param_value_size_ret; 940 }; 941 942 #define NUM_ITEMS_clFlush 1 943 #define NUM_ITEMS_clFinish 1 944 945 struct clFlush_st 946 { 947 cl_command_queue command_queue; 948 }; 949 950 struct clFinish_st 951 { 952 cl_command_queue command_queue; 953 }; 954 955 #define NUM_ITEMS_clCreateFromGLBuffer 1 956 struct clCreateFromGLBuffer_st 957 { 958 cl_context context; 959 cl_mem_flags flags; 960 cl_GLuint bufobj; 961 int *errcode_ret; 962 }; 963 964 #define NUM_ITEMS_clCreateFromGLTexture 1 965 #define NUM_ITEMS_clCreateFromGLTexture2D 1 966 #define NUM_ITEMS_clCreateFromGLTexture3D 1 967 968 struct clCreateFromGLTexture_st 969 { 970 cl_context context; 971 cl_mem_flags flags; 972 cl_GLenum texture_target; 973 cl_GLint miplevel; 974 cl_GLuint texture; 975 cl_int *errcode_ret; 976 }; 977 978 struct clCreateFromGLTexture2D_st 979 { 980 cl_context context; 981 cl_mem_flags flags; 982 cl_GLenum texture_target; 983 cl_GLint miplevel; 984 cl_GLuint texture; 985 cl_int *errcode_ret; 986 }; 987 988 struct clCreateFromGLTexture3D_st 989 { 990 cl_context context; 991 cl_mem_flags flags; 992 cl_GLenum texture_target; 993 cl_GLint miplevel; 994 cl_GLuint texture; 995 cl_int *errcode_ret; 996 }; 997 998 #define NUM_ITEMS_clCreateFromGLRenderbuffer 1 999 1000 struct clCreateFromGLRenderbuffer_st 1001 { 1002 cl_context context; 1003 cl_mem_flags flags; 1004 cl_GLuint renderbuffer; 1005 cl_int *errcode_ret; 1006 }; 1007 1008 1009 // Query Information [9.8.5] 1010 #define NUM_ITEMS_clGetGLObjectInfo 1 1011 #define NUM_ITEMS_clGetGLTextureInfo 1 1012 1013 struct clGetGLObjectInfo_st 1014 { 1015 cl_mem memobj; 1016 cl_gl_object_type *gl_object_type; 1017 cl_GLuint *gl_object_name; 1018 }; 1019 1020 struct clGetGLTextureInfo_st 1021 { 1022 cl_mem memobj; 1023 cl_gl_texture_info param_name; 1024 size_t param_value_size; 1025 void *param_value; 1026 size_t *param_value_size_ret; 1027 }; 1028 1029 // Share Objects [9.8.6] 1030 1031 #define NUM_ITEMS_clEnqueueAcquireGLObjects 1 1032 #define NUM_ITEMS_clEnqueueReleaseGLObjects 1 1033 1034 struct clEnqueueAcquireGLObjects_st 1035 { 1036 cl_command_queue command_queue; 1037 cl_uint num_objects; 1038 const cl_mem *mem_objects; 1039 cl_uint num_events_in_wait_list; 1040 const cl_event *event_wait_list; 1041 cl_event *event; 1042 }; 1043 1044 struct clEnqueueReleaseGLObjects_st 1045 { 1046 cl_command_queue command_queue; 1047 cl_uint num_objects; 1048 const cl_mem *mem_objects; 1049 cl_uint num_events_in_wait_list; 1050 const cl_event *event_wait_list; 1051 cl_event *event; 1052 }; 1053 1054 // CL Event Objects > GL Sync Objects [9.9] 1055 #define NUM_ITEMS_clCreateEventFromGLsyncKHR 1 1056 1057 struct clCreateEventFromGLsyncKHR_st 1058 { 1059 cl_context context; 1060 cl_GLsync sync; 1061 cl_int *errcode_ret; 1062 }; 1063 1064 // CL Context > GL Context; Sharegroup [9.7] 1065 #define NUM_ITEMS_clGetGLContextInfoKHR 1 1066 1067 struct clGetGLContextInfoKHR_st 1068 { 1069 const cl_context_properties *properties; 1070 cl_gl_context_info param_name; 1071 size_t param_value_size; 1072 void *param_value; 1073 size_t *param_value_size_ret; 1074 }; 1075 1076 #if 0 1077 // OpenCL/Direct3D 10 Sharing APIs [9.10] 1078 1079 #define NUM_ITEMS_clGetDeviceIDsFromD3D10KHR 1 1080 #define NUM_ITEMS_clCreateFromD3D10BufferKHR 1 1081 #define NUM_ITEMS_clCreateFromD3D10Texture2DKHR 1 1082 #define NUM_ITEMS_clCreateFromD3D10Texture3DKHR 1 1083 #define NUM_ITEMS_clEnqueueAcquireD3D10ObjectsKHR 1 1084 #define NUM_ITEMS_clEnqueueReleaseD3D10ObjectsKHR 1 1085 1086 struct clGetDeviceIDsFromD3D10KHR_st 1087 { 1088 cl_platform_id platform; 1089 cl_d3d10_device_source_khr d3d_device_source; 1090 void *d3d_object; 1091 cl_d3d10_device_set_khr d3d_device_set; 1092 cl_uint num_entries; 1093 cl_device_id *devices; cl_uint *num_devices; 1094 }; 1095 1096 struct clCreateFromD3D10BufferKHR_st 1097 { 1098 cl_context context; 1099 cl_mem_flags flags; 1100 ID3D10Buffer *resource; 1101 cl_int *errcode_ret; 1102 }; 1103 1104 struct clCreateFromD3D10Texture2DKHR_st 1105 { 1106 cl_context context; 1107 cl_mem_flags flags; 1108 ID3D10Texture2D *resource; 1109 UINT subresource; 1110 cl_int *errcode_ret; 1111 }; 1112 1113 struct clCreateFromD3D10Texture3DKHR_st 1114 { 1115 cl_context context; 1116 cl_mem_flags flags; 1117 ID3D10Texture3D *resource; 1118 UINT subresource; 1119 cl_int *errcode_ret; 1120 }; 1121 1122 struct clEnqueueAcquireD3D10ObjectsKHR_st 1123 { 1124 cl_command_queue command_queue; 1125 cl_uint num_objects; 1126 const cl_mem *mem_objects; 1127 cl_uint num_events_in_wait_list; 1128 const cl_event *event_wait_list; 1129 cl_event *event;}; 1130 1131 struct clEnqueueReleaseD3D10ObjectsKHR_st 1132 { 1133 cl_command_queue command_queue; 1134 cl_uint num_objects; 1135 const cl_mem *mem_objects; 1136 cl_uint num_events_in_wait_list; 1137 const cl_event *event_wait_list; 1138 cl_event *event; 1139 }; 1140 #endif 1141 1142 #endif /* _PARAM_STRUCT_H_ */ 1143