| 
                    cl_int
 clGetProgramInfo
                ( | cl_program program, | 
| cl_program_info param_name, | |
| size_t param_value_size, | |
| void *param_value, | |
| size_t *param_value_size_ret ) | 
 program  
            Specifies the program object being queried.
 param_name  
            
                      Specifies the information to query. The list of supported
                      param_name types and the information returned in
                      param_value by clGetProgramInfo
                      is described in the table below.
                    
| cl_program_info | Return Type and Info. returned in param_value | 
|---|---|
| CL_PROGRAM_REFERENCE_COUNT | Return type: cl_uint Return the  The reference count returned should be considered immediately stale. It is unsuitable for general use in applications. This feature is provided for identifying memory leaks. | 
| CL_PROGRAM_CONTEXT | Return type: cl_context Return the context specified when the program object is created | 
| CL_PROGRAM_NUM_DEVICES | Return type: cl_uint 
                                        Return the number of devices associated with  | 
| CL_PROGRAM_DEVICES | Return type: cl_device_id[] Return the list of devices associated with the program object. This can be the devices associated with context on which the program object has been created or can be a subset of devices that are specified when a progam object is created using clCreateProgramWithBinary. | 
| CL_PROGRAM_SOURCE | Return type: char[] Return the program source code specified by clCreateProgramWithSource. The source string returned is a concatenation of all source strings specified to clCreateProgramWithSource with a null terminator. The concatenation strips any nulls in the original source strings. 
                                      If  
                                      The actual number of characters that represents the
                                      program source code including the null terminator is
                                      returned in  | 
| CL_PROGRAM_BINARY_SIZES | Return type: size_t[] 
                                      Returns an array that contains the size in bytes of
                                      the program binary (could be an executable binary,
                                      compiled binary or library binary) for each device
                                      associated with  
                                      If  | 
| CL_PROGRAM_BINARIES | Return type: unsigned char *[] 
                                      Return the program binaries (could be an executable
                                      binary, compiled binary or library binary) for all
                                      devices associated with  
                                       
                                      Each entry in this array is used by the implementation as
                                      the location in memory where to copy the program binary for
                                      a specific device, if there is a binary available. To find
                                      out which device the program binary in the array refers to,
                                      use the  If an entry value in the array is NULL, the implementation skips copying the program binary for the specific device identified by the array index. | 
| CL_PROGRAM_NUM_KERNELS | Return type: size_t 
                                      Returns the number of kernels declared in
                                       | 
| CL_PROGRAM_KERNEL_NAMES | Return type: char[] 
                                      Returns a semi-colon separated list of kernel names
                                      in  | 
 param_value  
            
                        A pointer to memory where the appropriate result being queried is returned.
                        If param_value is NULL, it is ignored.
                    
 param_value_size  
            
                      Used to specify the size in bytes of memory pointed to by
                      param_value.  This size must be ≥ size of return
                      type as described in the table above.
                    
 param_value_size_ret  
            
                        Returns the actual size in bytes of data copied to param_value.
                        If  param_value_size_ret is NULL, it is ignored.
                    
Returns CL_SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
param_name is not
              valid, or if size in bytes specified by param_value_size
              is < size of return type as described in the table above and
              param_value is not NULL.
            program is not
              a valid program object.
            param_name is CL_PROGRAM_NUM_KERNELS or
              CL_PROGRAM_KERNEL_NAMES and a successful program executable
              has not been built for at least one device in the list of devices associated
              with program.
             Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.
Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.