1 /* 2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana 3 * University Research and Technology 4 * Corporation. All rights reserved. 5 * Copyright (c) 2004-2006 The University of Tennessee and The University 6 * of Tennessee Research Foundation. All rights 7 * reserved. 8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 9 * University of Stuttgart. All rights reserved. 10 * Copyright (c) 2004-2005 The Regents of the University of California. 11 * All rights reserved. 12 * $COPYRIGHT$ 13 * 14 * Additional copyrights may follow 15 * 16 * $HEADER$ 17 */ 18 /** 19 * @file 20 * 21 * This is the base request type for all IO requests. 22 */ 23 24 #ifndef IO_BASE_REQUEST_H 25 #define IO_BASE_REQUEST_H 26 27 #include "ompi_config.h" 28 #include "opal/class/opal_object.h" 29 #include "ompi/request/request.h" 30 #include "ompi/file/file.h" 31 #include "ompi/mca/io/base/base.h" 32 33 /** 34 * Base request type. 35 */ 36 struct mca_io_base_request_t { 37 /** Base request */ 38 ompi_request_t super; 39 40 /** ompi_file_t of the file that owns this request */ 41 ompi_file_t *req_file; 42 43 /** io component version number of the module that owns this 44 request (i.e., this defines what follows this entry in 45 memory) */ 46 mca_io_base_version_t req_ver; 47 /** True if free has been called on this request (before it has 48 been finalized */ 49 volatile bool free_called; 50 }; 51 /** 52 * Convenience typedef 53 */ 54 typedef struct mca_io_base_request_t mca_io_base_request_t; 55 56 BEGIN_C_DECLS 57 58 /** 59 * Declare the class 60 */ 61 OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_io_base_request_t); 62 63 END_C_DECLS 64 65 #endif