/* * This file is part of the StarPU Handbook. * Copyright (C) 2009--2011 Universit@'e de Bordeaux * Copyright (C) 2010, 2011, 2012, 2013 Centre National de la Recherche Scientifique * Copyright (C) 2011, 2012 Institut National de Recherche en Informatique et Automatique * See the file version.doxy for copying conditions. */ /*! \defgroup API_Running_Drivers Running Drivers \fn int starpu_driver_run(struct starpu_driver *d) \ingroup API_Running_Drivers Initialize the given driver, run it until it receives a request to terminate, deinitialize it and return 0 on success. It returns -EINVAL if d->type is not a valid StarPU device type (::STARPU_CPU_WORKER, ::STARPU_CUDA_WORKER or ::STARPU_OPENCL_WORKER). This is the same as using the following functions: calling starpu_driver_init(), then calling starpu_driver_run_once() in a loop, and eventually starpu_driver_deinit(). \fn int starpu_driver_init(struct starpu_driver *d) \ingroup API_Running_Drivers Initialize the given driver. Returns 0 on success, -EINVAL if d->type is not a valid ::starpu_worker_archtype. \fn int starpu_driver_run_once(struct starpu_driver *d) \ingroup API_Running_Drivers Run the driver once, then returns 0 on success, -EINVAL if d->type is not a valid ::starpu_worker_archtype. \fn int starpu_driver_deinit(struct starpu_driver *d) \ingroup API_Running_Drivers Deinitialize the given driver. Returns 0 on success, -EINVAL if d->type is not a valid ::starpu_worker_archtype. \fn void starpu_drivers_request_termination(void) \ingroup API_Running_Drivers Notify all running drivers they should terminate. */