xref: /aosp_15_r20/external/pytorch/torch/csrc/Stream.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #ifndef THP_STREAM_INC
2*da0073e9SAndroid Build Coastguard Worker #define THP_STREAM_INC
3*da0073e9SAndroid Build Coastguard Worker 
4*da0073e9SAndroid Build Coastguard Worker #include <c10/core/Stream.h>
5*da0073e9SAndroid Build Coastguard Worker #include <c10/macros/Export.h>
6*da0073e9SAndroid Build Coastguard Worker #include <torch/csrc/python_headers.h>
7*da0073e9SAndroid Build Coastguard Worker 
8*da0073e9SAndroid Build Coastguard Worker struct THPStream {
9*da0073e9SAndroid Build Coastguard Worker   PyObject_HEAD int64_t stream_id;
10*da0073e9SAndroid Build Coastguard Worker   int64_t device_type;
11*da0073e9SAndroid Build Coastguard Worker   int64_t device_index;
12*da0073e9SAndroid Build Coastguard Worker };
13*da0073e9SAndroid Build Coastguard Worker extern TORCH_API PyTypeObject* THPStreamClass;
14*da0073e9SAndroid Build Coastguard Worker 
15*da0073e9SAndroid Build Coastguard Worker void THPStream_init(PyObject* module);
16*da0073e9SAndroid Build Coastguard Worker 
THPStream_Check(PyObject * obj)17*da0073e9SAndroid Build Coastguard Worker inline bool THPStream_Check(PyObject* obj) {
18*da0073e9SAndroid Build Coastguard Worker   return THPStreamClass && PyObject_IsInstance(obj, (PyObject*)THPStreamClass);
19*da0073e9SAndroid Build Coastguard Worker }
20*da0073e9SAndroid Build Coastguard Worker 
21*da0073e9SAndroid Build Coastguard Worker PyObject* THPStream_Wrap(const c10::Stream& stream);
22*da0073e9SAndroid Build Coastguard Worker 
23*da0073e9SAndroid Build Coastguard Worker #endif // THP_STREAM_INC
24