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