OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

op_x86.h
1 /*
2 * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2005 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 (c) 2008-2009 Cisco Systems, Inc. All rights reserved.
13 * $COPYRIGHT$
14 *
15 * Additional copyrights may follow
16 *
17 * $HEADER$
18 */
19
20 #ifndef MCA_OP_X86_EXPORT_H
21 #define MCA_OP_X86_EXPORT_H
22
23 #include "ompi_config.h"
24
25 #include "opal/mca/mca.h"
26 #include "opal/class/opal_object.h"
27
28 #include "ompi/mca/op/op.h"
29
30 BEGIN_C_DECLS
31
32 /**
33 * Flags for each hardware type
34 */
35 typedef enum {
36 OP_X86_HW_FLAGS_MMX = 1,
37 OP_X86_HW_FLAGS_MMX2 = 2,
38 OP_X86_HW_FLAGS_SSE = 4,
39 OP_X86_HW_FLAGS_SSE2 = 8,
40 OP_X86_HW_FLAGS_SSE3 = 16
41 } op_x86_hw_flags_t;
42
43 /**
44 * Derive a struct from the base op component struct, allowing us to
45 * cache some component-specific information on our well-known
46 * component struct.
47 */
48 typedef struct {
49 /** The base op component struct */
50 ompi_op_base_component_1_0_0_t super;
51
52 /* What hardware do we have? */
53 op_x86_hw_flags_t oxc_hw_flags;
54 } ompi_op_x86_component_t;
55
56 /**
57 * Derive a struct from the base op module struct, allowing us to
58 * cache some module-specific information for SUM.
59 */
60 typedef struct {
61 ompi_op_base_module_1_0_0_t super;
62
63 /* JMS need anything here? */
64 } ompi_op_x86_module_sum_t;
65
66 OBJ_CLASS_DECLARATION(ompi_op_x86_module_sum_t);
67
68 /**
69 * Well-known component instance
70 */
71 OMPI_DECLSPEC extern ompi_op_x86_component_t mca_op_x86_component;
72
73 /**
74 * Setup for MPI_MAX and return a module.
75 */
76 OMPI_DECLSPEC ompi_op_base_module_t *ompi_op_x86_setup_sum(ompi_op_t *op);
77
78 END_C_DECLS
79
80 #endif /* MCA_OP_X86_EXPORT_H */
mca_op_x86_component
ompi_op_x86_component_t mca_op_x86_component
Well-known component instance.
Definition: op_x86_component.c:47
ompi_op_base_module_1_0_0_t
Module struct.
Definition: op.h:355
ompi_op_x86_module_sum_t
Derive a struct from the base op module struct, allowing us to cache some module-specific information...
Definition: op_x86.h:60
ompi_op_x86_component_t
Derive a struct from the base op component struct, allowing us to cache some component-specific infor...
Definition: op_x86.h:48
ompi_op_base_component_1_0_0_t
Op component interface.
Definition: op.h:324
mca.h
Top-level interface for all MCA components.
ompi_op_x86_component_t::super
ompi_op_base_component_1_0_0_t super
The base op component struct.
Definition: op_x86.h:50
ompi_op_x86_setup_sum
ompi_op_base_module_t * ompi_op_x86_setup_sum(ompi_op_t *op)
Setup function for MPI_SUM.
Definition: op_x86_module_sum.c:151
opal_object.h
A simple C-language object-oriented system with single inheritance and ownership-based memory managem...
ompi_op_t
Back-end type of MPI_Op.
Definition: op.h:100
op.h
MPI_Op back-end operation framework.
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236