@@ -73,10 +73,20 @@ typedef enum caf_register_t {
7373 CAF_REGTYPE_LOCK_ALLOC ,
7474 CAF_REGTYPE_CRITICAL ,
7575 CAF_REGTYPE_EVENT_STATIC ,
76- CAF_REGTYPE_EVENT_ALLOC
76+ CAF_REGTYPE_EVENT_ALLOC ,
77+ CAF_REGTYPE_COARRAY_ALLOC_REGISTER_ONLY ,
78+ CAF_REGTYPE_COARRAY_ALLOC_ALLOCATE_ONLY
7779}
7880caf_register_t ;
7981
82+ /* Describes the action to take on _caf_deregister. Keep in sync with
83+ gcc/fortran/trans.h. */
84+ typedef enum caf_deregister_t {
85+ CAF_DEREGTYPE_COARRAY_DEREGISTER ,
86+ CAF_DEREGTYPE_COARRAY_DEALLOCATE_ONLY
87+ }
88+ caf_deregister_t ;
89+
8090typedef void * caf_token_t ;
8191
8292
@@ -203,11 +213,12 @@ int PREFIX (num_images) (int, int);
203213#ifdef GCC_GE_7
204214void PREFIX (register) (size_t , caf_register_t , caf_token_t * ,
205215 gfc_descriptor_t * , int * , char * , int );
216+ void PREFIX (deregister ) (caf_token_t * , int , int * , char * , int );
206217#else
207218void * PREFIX (register) (size_t , caf_register_t , caf_token_t * ,
208219 int * , char * , int );
209- #endif
210220void PREFIX (deregister ) (caf_token_t * , int * , char * , int );
221+ #endif
211222
212223void PREFIX (caf_get ) (caf_token_t , size_t , int , gfc_descriptor_t * ,
213224 caf_vector_t * , gfc_descriptor_t * , int , int , int );
@@ -231,9 +242,10 @@ void PREFIX(sendget_by_ref) (caf_token_t dst_token, int dst_image_index,
231242 caf_reference_t * dst_refs , caf_token_t src_token , int src_image_index ,
232243 caf_reference_t * src_refs , int dst_kind , int src_kind ,
233244 bool may_require_tmp , int * dst_stat , int * src_stat );
245+ int PREFIX (is_present ) (caf_token_t , int , caf_reference_t * refs );
234246#endif
235247
236- void PREFIX (co_broadcast ) (gfc_descriptor_t * , int , int * , char * , int );
248+ void PREFIX (co_broadcast ) (gfc_descriptor_t * , int , int * , char * , int );
237249void PREFIX (co_max ) (gfc_descriptor_t * , int , int * , char * , int , int );
238250void PREFIX (co_min ) (gfc_descriptor_t * , int , int * , char * , int , int );
239251void PREFIX (co_reduce ) (gfc_descriptor_t * , void * (* opr ) (void * , void * ),
0 commit comments