OpenMPI  0.1.1
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 */
51 
52  /* What hardware do we have? */
53  op_x86_hw_flags_t oxc_hw_flags;
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 {
62 
63  /* JMS need anything here? */
65 
67 
68 /**
69  * Well-known component instance
70  */
72 
73 /**
74  * Setup for MPI_MAX and return a module.
75  */
77 
78 END_C_DECLS
79 
80 #endif /* MCA_OP_X86_EXPORT_H */
ompi_op_x86_component_t mca_op_x86_component
Well-known component instance.
Definition: op_x86_component.c:47
Module struct.
Definition: op.h:355
Derive a struct from the base op module struct, allowing us to cache some module-specific information...
Definition: op_x86.h:60
Derive a struct from the base op component struct, allowing us to cache some component-specific infor...
Definition: op_x86.h:48
Op component interface.
Definition: op.h:324
Top-level interface for all MCA components.
ompi_op_base_component_1_0_0_t super
The base op component struct.
Definition: op_x86.h:50
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
A simple C-language object-oriented system with single inheritance and ownership-based memory managem...
Back-end type of MPI_Op.
Definition: op.h:100
MPI_Op back-end operation framework.
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236