49#include "fc_feature_defs.inc"
51 USE iso_c_binding,
ONLY: c_null_ptr, c_ptr, c_associated, c_int
55 TYPE,
BIND(C),
PUBLIC :: xt_request
59 TYPE(c_ptr) :: cptr = c_null_ptr
68 FUNCTION xt_request_f2c(request) bind(c, name='xt_request_f2c')
RESULT(p)
71 TYPE(xt_request),
INTENT(in) :: request
77 TYPE(xt_request),
INTENT(inout) :: request
82 TYPE(xt_request),
PARAMETER,
PUBLIC :: xt_request_null =
xt_request(c_null_ptr)
85 MODULE PROCEDURE xt_request_is_null
86 END INTERFACE xt_is_null
90 SUBROUTINE xt_request_init(request, cptr)
91 TYPE(xt_request),
INTENT(out) :: request
92 TYPE(c_ptr),
INTENT(in) :: cptr
94 END SUBROUTINE xt_request_init
98 TYPE(xt_request),
INTENT(inout) :: request
99 LOGICAL,
INTENT(out) :: flag
100 INTEGER(c_int) :: flag_c
102 SUBROUTINE xt_request_test_c(request_c, flag_c) &
103 bind(c, name=
'xt_request_test')
104 import:: c_ptr, c_int
105 TYPE(c_ptr),
INTENT(inout) :: request_c
106 INTEGER(c_int),
INTENT(out) :: flag_c
107 END SUBROUTINE xt_request_test_c
109 CALL xt_request_test_c(request%cptr, flag_c)
113 FUNCTION xt_request_is_null(request)
RESULT(p)
114 TYPE(xt_request),
INTENT(in) :: request
116 p = .NOT. c_associated(request%cptr)
117 END FUNCTION xt_request_is_null
119END MODULE xt_requests
void xt_request_wait(Xt_request *request)
void xt_request_test(Xt_request *request, int *flag)
Xt_request xt_request_f2c(struct xt_request_f *p)