cl_getplatformids.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2012,2017 CNRS
  4. * Copyright (C) 2010,2011,2018 Université de Bordeaux
  5. * Copyright (C) 2011,2012 Inria
  6. *
  7. * StarPU is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU Lesser General Public License as published by
  9. * the Free Software Foundation; either version 2.1 of the License, or (at
  10. * your option) any later version.
  11. *
  12. * StarPU is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  15. *
  16. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  17. */
  18. #include "socl.h"
  19. extern int _starpu_init_failed;
  20. /**
  21. * \brief Get StarPU platform ID
  22. */
  23. CL_API_SUFFIX__VERSION_1_0
  24. CL_API_ENTRY cl_int CL_API_CALL
  25. soclGetPlatformIDs(cl_uint num_entries,
  26. cl_platform_id * platforms,
  27. cl_uint * num_platforms)
  28. {
  29. if (_starpu_init_failed)
  30. {
  31. if (num_platforms != NULL)
  32. *num_platforms = 0;
  33. return CL_SUCCESS;
  34. }
  35. if ((num_entries == 0 && platforms != NULL)
  36. || (num_platforms == NULL && platforms == NULL))
  37. return CL_INVALID_VALUE;
  38. else
  39. {
  40. if (platforms != NULL)
  41. platforms[0] = &socl_platform;
  42. if (num_platforms != NULL)
  43. *num_platforms = 1;
  44. }
  45. return CL_SUCCESS;
  46. }