Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Function pointer naming #947

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 68 additions & 13 deletions xml/cl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,61 @@ server's OpenCL/api-docs repository.
<member>const <type>size_t</type>* <name>global_work_size</name></member>
<member>const <type>size_t</type>* <name>local_work_size</name></member>
</type>

<type category="function" name="cl_enqueue_svm_free_callback">
<proto><type>void</type></proto>
<param><type>cl_command_queue</type> <name>queue</name></param>
<param><type>cl_uint</type> <name>num_svm_pointers</name></param>
<param><type>void</type>* <name>svm_pointers</name>[]</param>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_create_context_callback">
<proto><type>void</type></proto>
<param>const <type>char</type>* <name>errinfo</name></param>
<param>const <type>void</type>* <name>private_info</name></param>
<param><type>size_t</type> <name>cb</name></param>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_context_destructor_callback">
<proto><type>void</type></proto>
<param><type>cl_context</type> <name>context</name></param>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_mem_object_destructor_callback">
<proto><type>void</type></proto>
<param><type>cl_mem</type> <name>memobj</name></param>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_program_callback">
<proto><type>void</type></proto>
<param><type>cl_program</type> <name>program</name></param>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_event_callback">
<proto><type>void</type></proto>
<param><type>cl_event</type> <name>event</name></param>
<param><type>cl_int</type> <name>event_command_status</name></param>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_enqueue_native_kernel_callback">
<proto><type>void</type></proto>
<param><type>void</type>* <name>user_data</name></param>
</type>

<type category="function" name="cl_printf_callback">
<proto><type>void</type></proto>
<param>const <type>char</type>* <name>buffer</name></param>
<param><type>size_t</type> <name>len</name></param>
<param><type>size_t</type> <name>complete</name></param>
<param><type>void</type>* <name>user_data</name></param>
</type>

</types>

<!-- SECTION: OpenCL enumerant (token) definitions. -->
Expand Down Expand Up @@ -2764,7 +2819,7 @@ server's OpenCL/api-docs repository.
<param><type>cl_command_queue</type> <name>command_queue</name></param>
<param><type>cl_uint</type> <name>num_svm_pointers</name></param>
<param><type>void</type>* <name>svm_pointers</name>[]</param>
<param>void (CL_CALLBACK* <name>pfn_free_func</name>)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data)</param>
<param><type>cl_enqueue_svm_free_callback</type> <name>pfn_free_func</name></param>
<param><type>void</type>* <name>user_data</name></param>
<param><type>cl_uint</type> <name>num_events_in_wait_list</name></param>
<param>const <type>cl_event</type>* <name>event_wait_list</name></param>
Expand Down Expand Up @@ -3368,15 +3423,15 @@ server's OpenCL/api-docs repository.
<param>const <type>cl_context_properties</type>* <name>properties</name></param>
<param><type>cl_uint</type> <name>num_devices</name></param>
<param>const <type>cl_device_id</type>* <name>devices</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(const char* errinfo, const void* private_info, size_t cb, void* user_data)</param>
<param><type>cl_create_context_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
<param><type>cl_int</type>* <name>errcode_ret</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_1_0">
<proto><type>cl_context</type> <name>clCreateContextFromType</name></proto>
<param>const <type>cl_context_properties</type>* <name>properties</name></param>
<param><type>cl_device_type</type> <name>device_type</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(const char* errinfo, const void* private_info, size_t cb, void* user_data)</param>
<param><type>cl_create_context_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
<param><type>cl_int</type>* <name>errcode_ret</name></param>
</command>
Expand All @@ -3399,7 +3454,7 @@ server's OpenCL/api-docs repository.
<command suffix="CL_API_SUFFIX__VERSION_3_0">
<proto><type>cl_int</type> <name>clSetContextDestructorCallback</name></proto>
<param><type>cl_context</type> <name>context</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_context context, void* user_data)</param>
<param><type>cl_context_destructor_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_2_0">
Expand Down Expand Up @@ -3522,13 +3577,13 @@ server's OpenCL/api-docs repository.
<command suffix="CL_API_SUFFIX__VERSION_1_1">
<proto><type>cl_int</type> <name>clSetMemObjectDestructorCallback</name></proto>
<param><type>cl_mem</type> <name>memobj</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_mem memobj, void* user_data)</param>
<param><type>cl_mem_object_destructor_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_1_0">
<proto><type>cl_int</type> <name>clSetMemObjectDestructorAPPLE</name></proto>
<param><type>cl_mem</type> <name>memobj</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_mem memobj, void* user_data)</param>
<param><type>cl_mem_object_destructor_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_2_0">
Expand Down Expand Up @@ -3612,7 +3667,7 @@ server's OpenCL/api-docs repository.
<param><type>cl_uint</type> <name>num_devices</name></param>
<param>const <type>cl_device_id</type>* <name>device_list</name></param>
<param>const <type>char</type>* <name>options</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
<param><type>cl_program_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_1_2">
Expand All @@ -3624,7 +3679,7 @@ server's OpenCL/api-docs repository.
<param><type>cl_uint</type> <name>num_input_headers</name></param>
<param>const <type>cl_program</type>* <name>input_headers</name></param>
<param>const <type>char</type>** <name>header_include_names</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
<param><type>cl_program_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_1_2">
Expand All @@ -3635,14 +3690,14 @@ server's OpenCL/api-docs repository.
<param>const <type>char</type>* <name>options</name></param>
<param><type>cl_uint</type> <name>num_input_programs</name></param>
<param>const <type>cl_program</type>* <name>input_programs</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
<param><type>cl_program_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
<param><type>cl_int</type>* <name>errcode_ret</name></param>
</command>
<command prefix="CL_API_PREFIX__VERSION_2_2_DEPRECATED" suffix="CL_API_SUFFIX__VERSION_2_2_DEPRECATED">
<proto><type>cl_int</type> <name>clSetProgramReleaseCallback</name></proto>
<param><type>cl_program</type> <name>program</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_program program, void* user_data)</param>
<param><type>cl_program_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_2_2">
Expand Down Expand Up @@ -3791,7 +3846,7 @@ server's OpenCL/api-docs repository.
<proto><type>cl_int</type> <name>clSetEventCallback</name></proto>
<param><type>cl_event</type> <name>event</name></param>
<param><type>cl_int</type> <name>command_exec_callback_type</name></param>
<param>void (CL_CALLBACK* <name>pfn_notify</name>)(cl_event event, cl_int event_command_status, void *user_data)</param>
<param><type>cl_event_callback</type> <name>pfn_notify</name></param>
<param><type>void</type>* <name>user_data</name></param>
</command>
<command suffix="CL_API_SUFFIX__VERSION_1_0">
Expand Down Expand Up @@ -4045,7 +4100,7 @@ server's OpenCL/api-docs repository.
<command suffix="CL_API_SUFFIX__VERSION_1_0">
<proto><type>cl_int</type> <name>clEnqueueNativeKernel</name></proto>
<param><type>cl_command_queue</type> <name>command_queue</name></param>
<param>void (CL_CALLBACK* <name>user_func</name>)(void*)</param>
<param><type>cl_enqueue_native_kernel_callback</type> <name>user_func</name></param>
<param><type>void</type>* <name>args</name></param>
<param><type>size_t</type> <name>cb_args</name></param>
<param><type>cl_uint</type> <name>num_mem_objects</name></param>
Expand Down Expand Up @@ -4074,7 +4129,7 @@ server's OpenCL/api-docs repository.
<param><type>cl_command_queue</type> <name>command_queue</name></param>
<param><type>cl_uint</type> <name>num_svm_pointers</name></param>
<param><type>void</type>* <name>svm_pointers</name>[]</param>
<param>void (CL_CALLBACK* <name>pfn_free_func</name>)(cl_command_queue queue, cl_uint num_svm_pointers, void* svm_pointers[], void* user_data)</param>
<param><type>cl_enqueue_svm_free_callback</type> <name>pfn_free_func</name></param>
<param><type>void</type>* <name>user_data</name></param>
<param><type>cl_uint</type> <name>num_events_in_wait_list</name></param>
<param>const <type>cl_event</type>* <name>event_wait_list</name></param>
Expand Down
18 changes: 16 additions & 2 deletions xml/registry.rnc
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Types = element types {
# bitvalues - for a *Flags type, name of an enum definition that
# defines the valid values for parameters of that type
# category - if present, 'enum' indicates a matching <enums>
# block to generate an enumerated type for, and 'struct'
# block to generate an enumerated type for, and 'struct'/'function'
# causes special interpretation of the contents of the type
# tag including ... TBD ...
# Other allowed values are 'include', 'define', 'handle' and 'bitmask',
Expand Down Expand Up @@ -123,6 +123,9 @@ Types = element types {
# noautovalidity - tag stating that no automatic validity language should be generated
# values - comma-separated list of legal values, usually used only for sType enums
# <comment> - containing arbitrary text (unused)
# For types with category 'function', contents should be one <proto> and zero or more <param>
# <proto> - contains a single <type> tag, indicating return value of function pointer
# <param> - like <param> tag in <command>
#
# *** There is a problem here: I am not sure how to represent the <type>
# syntax where it may contain arbitrarily interleaved text, <type>, and
Expand Down Expand Up @@ -178,7 +181,18 @@ Type = element type {
} +
} |
element comment { text }
) *
) * |
(
element proto {
element type { TypeName }
} ,
element param {
mixed {
element type { TypeName } ? ,
element name { text } ?
}
} *
)
)
}

Expand Down