/* Generated by Cython 0.29.36 */

#ifndef __PYX_HAVE__dpctl__program___program
#define __PYX_HAVE__dpctl__program___program

#include "Python.h"
struct PySyclKernelObject;
struct PySyclProgramObject;

/* "dpctl/program/_program.pxd":31
 * 
 * 
 * cdef api class SyclKernel [object PySyclKernelObject, type PySyclKernelType]:             # <<<<<<<<<<<<<<
 *     ''' Wraps a sycl::kernel object created from an OpenCL interoperability
 *         kernel.
 */
struct PySyclKernelObject {
  PyObject_HEAD
  struct __pyx_vtabstruct_5dpctl_7program_8_program_SyclKernel *__pyx_vtab;
  DPCTLSyclKernelRef _kernel_ref;
  PyObject *_function_name;
};

/* "dpctl/program/_program.pxd":43
 * 
 * 
 * cdef api class SyclProgram [object PySyclProgramObject, type PySyclProgramType]:             # <<<<<<<<<<<<<<
 *     ''' Wraps a sycl::kernel_bundle<sycl::bundle_state::executable> object created by
 *         using SYCL interoperability layer for OpenCL and Level-Zero backends.
 */
struct PySyclProgramObject {
  PyObject_HEAD
  struct __pyx_vtabstruct_5dpctl_7program_8_program_SyclProgram *__pyx_vtab;
  DPCTLSyclKernelBundleRef _program_ref;
};

#ifndef __PYX_HAVE_API__dpctl__program___program

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#ifndef DL_IMPORT
  #define DL_IMPORT(_T) _T
#endif

#endif /* !__PYX_HAVE_API__dpctl__program___program */

/* WARNING: the interface of the module init function changed in CPython 3.5. */
/* It now returns a PyModuleDef instance instead of a PyModule instance. */

#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC init_program(void);
#else
PyMODINIT_FUNC PyInit__program(void);
#endif

#endif /* !__PYX_HAVE__dpctl__program___program */
