Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
[linux-2.6] / drivers / staging / epl / kernel / EplObdk.h
1 /****************************************************************************
2
3   (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
4       www.systec-electronic.com
5
6   Project:      openPOWERLINK
7
8   Description:  include file for Epl-Obd-Kernel-Modul
9
10   License:
11
12     Redistribution and use in source and binary forms, with or without
13     modification, are permitted provided that the following conditions
14     are met:
15
16     1. Redistributions of source code must retain the above copyright
17        notice, this list of conditions and the following disclaimer.
18
19     2. Redistributions in binary form must reproduce the above copyright
20        notice, this list of conditions and the following disclaimer in the
21        documentation and/or other materials provided with the distribution.
22
23     3. Neither the name of SYSTEC electronic GmbH nor the names of its
24        contributors may be used to endorse or promote products derived
25        from this software without prior written permission. For written
26        permission, please contact info@systec-electronic.com.
27
28     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
31     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
32     COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
33     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
34     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
38     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39     POSSIBILITY OF SUCH DAMAGE.
40
41     Severability Clause:
42
43         If a provision of this License is or becomes illegal, invalid or
44         unenforceable in any jurisdiction, that shall not affect:
45         1. the validity or enforceability in that jurisdiction of any other
46            provision of this License; or
47         2. the validity or enforceability in other jurisdictions of that or
48            any other provision of this License.
49
50   -------------------------------------------------------------------------
51
52                 $RCSfile: EplObdk.h,v $
53
54                 $Author: D.Krueger $
55
56                 $Revision: 1.8 $  $Date: 2008/10/17 15:32:32 $
57
58                 $State: Exp $
59
60                 Build Environment:
61                     GCC V3.4
62
63   -------------------------------------------------------------------------
64
65   Revision History:
66
67   2006/06/19 k.t.:   start of the implementation
68
69 ****************************************************************************/
70
71 #include "../EplObd.h"
72
73 #ifndef _EPLOBDK_H_
74 #define _EPLOBDK_H_
75
76 //---------------------------------------------------------------------------
77 // const defines
78 //---------------------------------------------------------------------------
79
80 //---------------------------------------------------------------------------
81 // typedef
82 //---------------------------------------------------------------------------
83
84 //---------------------------------------------------------------------------
85 // global variables
86 //---------------------------------------------------------------------------
87
88 extern BYTE MEM abEplObdTrashObject_g[8];
89
90 //---------------------------------------------------------------------------
91 // function prototypes
92 //---------------------------------------------------------------------------
93 #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDK)) != 0)
94 // ---------------------------------------------------------------------
95 EPLDLLEXPORT tEplKernel PUBLIC EplObdInit(EPL_MCO_DECL_PTR_INSTANCE_PTR_
96                                           tEplObdInitParam MEM * pInitParam_p);
97
98 // ---------------------------------------------------------------------
99 EPLDLLEXPORT tEplKernel PUBLIC EplObdAddInstance(EPL_MCO_DECL_PTR_INSTANCE_PTR_
100                                                  tEplObdInitParam MEM *
101                                                  pInitParam_p);
102
103 // ---------------------------------------------------------------------
104 EPLDLLEXPORT tEplKernel PUBLIC EplObdDeleteInstance(EPL_MCO_DECL_INSTANCE_PTR);
105
106 // ---------------------------------------------------------------------
107 EPLDLLEXPORT tEplKernel PUBLIC EplObdWriteEntry(EPL_MCO_DECL_INSTANCE_PTR_
108                                                 unsigned int uiIndex_p,
109                                                 unsigned int uiSubIndex_p,
110                                                 void *pSrcData_p,
111                                                 tEplObdSize Size_p);
112
113 // ---------------------------------------------------------------------
114 EPLDLLEXPORT tEplKernel PUBLIC EplObdReadEntry(EPL_MCO_DECL_INSTANCE_PTR_
115                                                unsigned int uiIndex_p,
116                                                unsigned int uiSubIndex_p,
117                                                void *pDstData_p,
118                                                tEplObdSize * pSize_p);
119
120 // ---------------------------------------------------------------------
121 EPLDLLEXPORT tEplKernel PUBLIC
122 EplObdSetStoreLoadObjCallback(EPL_MCO_DECL_INSTANCE_PTR_
123                               tEplObdStoreLoadObjCallback fpCallback_p);
124
125 // ---------------------------------------------------------------------
126 EPLDLLEXPORT tEplKernel PUBLIC EplObdAccessOdPart(EPL_MCO_DECL_INSTANCE_PTR_
127                                                   tEplObdPart ObdPart_p,
128                                                   tEplObdDir Direction_p);
129
130 // ---------------------------------------------------------------------
131 EPLDLLEXPORT tEplKernel PUBLIC EplObdDefineVar(EPL_MCO_DECL_INSTANCE_PTR_
132                                                tEplVarParam MEM * pVarParam_p);
133
134 // ---------------------------------------------------------------------
135 EPLDLLEXPORT void *PUBLIC EplObdGetObjectDataPtr(EPL_MCO_DECL_INSTANCE_PTR_
136                                                  unsigned int uiIndex_p,
137                                                  unsigned int uiSubIndex_p);
138 // ---------------------------------------------------------------------
139 EPLDLLEXPORT tEplKernel PUBLIC EplObdRegisterUserOd(EPL_MCO_DECL_INSTANCE_PTR_
140                                                     tEplObdEntryPtr pUserOd_p);
141
142 // ---------------------------------------------------------------------
143 EPLDLLEXPORT void PUBLIC EplObdInitVarEntry(EPL_MCO_DECL_INSTANCE_PTR_
144                                             tEplObdVarEntry MEM * pVarEntry_p,
145                                             tEplObdType Type_p,
146                                             tEplObdSize ObdSize_p);
147
148 // ---------------------------------------------------------------------
149 EPLDLLEXPORT tEplObdSize PUBLIC EplObdGetDataSize(EPL_MCO_DECL_INSTANCE_PTR_
150                                                   unsigned int uiIndex_p,
151                                                   unsigned int uiSubIndex_p);
152
153 // ---------------------------------------------------------------------
154 EPLDLLEXPORT unsigned int PUBLIC EplObdGetNodeId(EPL_MCO_DECL_INSTANCE_PTR);
155
156 // ---------------------------------------------------------------------
157 EPLDLLEXPORT tEplKernel PUBLIC EplObdSetNodeId(EPL_MCO_DECL_INSTANCE_PTR_
158                                                unsigned int uiNodeId_p,
159                                                tEplObdNodeIdType NodeIdType_p);
160
161 // ---------------------------------------------------------------------
162 EPLDLLEXPORT tEplKernel PUBLIC EplObdIsNumerical(EPL_MCO_DECL_INSTANCE_PTR_
163                                                  unsigned int uiIndex_p,
164                                                  unsigned int uiSubIndex_p,
165                                                  BOOL * pfEntryNumerical);
166 // ---------------------------------------------------------------------
167 EPLDLLEXPORT tEplKernel PUBLIC EplObdWriteEntryFromLe(EPL_MCO_DECL_INSTANCE_PTR_
168                                                       unsigned int uiIndex_p,
169                                                       unsigned int uiSubIndex_p,
170                                                       void *pSrcData_p,
171                                                       tEplObdSize Size_p);
172
173 // ---------------------------------------------------------------------
174 EPLDLLEXPORT tEplKernel PUBLIC EplObdReadEntryToLe(EPL_MCO_DECL_INSTANCE_PTR_
175                                                    unsigned int uiIndex_p,
176                                                    unsigned int uiSubIndex_p,
177                                                    void *pDstData_p,
178                                                    tEplObdSize * pSize_p);
179
180 // ---------------------------------------------------------------------
181 EPLDLLEXPORT tEplKernel PUBLIC EplObdGetAccessType(EPL_MCO_DECL_INSTANCE_PTR_
182                                                    unsigned int uiIndex_p,
183                                                    unsigned int uiSubIndex_p,
184                                                    tEplObdAccess *
185                                                    pAccessTyp_p);
186
187 // ---------------------------------------------------------------------
188 EPLDLLEXPORT tEplKernel PUBLIC EplObdSearchVarEntry(EPL_MCO_DECL_INSTANCE_PTR_
189                                                     unsigned int uiIndex_p,
190                                                     unsigned int uiSubindex_p,
191                                                     tEplObdVarEntry MEM **
192                                                     ppVarEntry_p);
193
194 #endif // end of #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDK)) != 0)
195
196 #endif // #ifndef _EPLOBDK_H_