1*da0073e9SAndroid Build Coastguard Worker #pragma once 2*da0073e9SAndroid Build Coastguard Worker 3*da0073e9SAndroid Build Coastguard Worker #include <torch/csrc/Export.h> 4*da0073e9SAndroid Build Coastguard Worker #include <torch/csrc/python_headers.h> 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard Worker #include <ATen/Device.h> 7*da0073e9SAndroid Build Coastguard Worker 8*da0073e9SAndroid Build Coastguard Worker // NOLINTNEXTLINE(cppcoreguidelines-pro-type-member-init) 9*da0073e9SAndroid Build Coastguard Worker struct TORCH_API THPDevice { 10*da0073e9SAndroid Build Coastguard Worker PyObject_HEAD at::Device device; 11*da0073e9SAndroid Build Coastguard Worker }; 12*da0073e9SAndroid Build Coastguard Worker 13*da0073e9SAndroid Build Coastguard Worker TORCH_API extern PyTypeObject THPDeviceType; 14*da0073e9SAndroid Build Coastguard Worker THPDevice_Check(PyObject * obj)15*da0073e9SAndroid Build Coastguard Workerinline bool THPDevice_Check(PyObject* obj) { 16*da0073e9SAndroid Build Coastguard Worker return Py_TYPE(obj) == &THPDeviceType; 17*da0073e9SAndroid Build Coastguard Worker } 18*da0073e9SAndroid Build Coastguard Worker 19*da0073e9SAndroid Build Coastguard Worker TORCH_API PyObject* THPDevice_New(const at::Device& device); 20*da0073e9SAndroid Build Coastguard Worker 21*da0073e9SAndroid Build Coastguard Worker TORCH_API void THPDevice_init(PyObject* module); 22