Staging: add epl stack
[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
72 #include "../EplObd.h"
73
74 #ifndef _EPLOBDK_H_
75 #define _EPLOBDK_H_
76
77
78 //---------------------------------------------------------------------------
79 // const defines
80 //---------------------------------------------------------------------------
81
82
83 //---------------------------------------------------------------------------
84 // typedef
85 //---------------------------------------------------------------------------
86
87 //---------------------------------------------------------------------------
88 // global variables
89 //---------------------------------------------------------------------------
90
91 extern BYTE MEM abEplObdTrashObject_g[8];
92
93 //---------------------------------------------------------------------------
94 // function prototypes
95 //---------------------------------------------------------------------------
96 #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDK)) != 0)
97 // ---------------------------------------------------------------------
98 EPLDLLEXPORT tEplKernel PUBLIC EplObdInit (EPL_MCO_DECL_PTR_INSTANCE_PTR_
99     tEplObdInitParam MEM*      pInitParam_p);
100
101 // ---------------------------------------------------------------------
102 EPLDLLEXPORT tEplKernel PUBLIC EplObdAddInstance (EPL_MCO_DECL_PTR_INSTANCE_PTR_
103     tEplObdInitParam MEM*      pInitParam_p);
104
105 // ---------------------------------------------------------------------
106 EPLDLLEXPORT tEplKernel PUBLIC EplObdDeleteInstance (EPL_MCO_DECL_INSTANCE_PTR);
107
108 // ---------------------------------------------------------------------
109 EPLDLLEXPORT tEplKernel PUBLIC EplObdWriteEntry (EPL_MCO_DECL_INSTANCE_PTR_
110     unsigned int  uiIndex_p,
111     unsigned int  uiSubIndex_p,
112     void * pSrcData_p,
113     tEplObdSize   Size_p);
114
115 // ---------------------------------------------------------------------
116 EPLDLLEXPORT tEplKernel PUBLIC EplObdReadEntry (EPL_MCO_DECL_INSTANCE_PTR_
117     unsigned int        uiIndex_p,
118     unsigned int        uiSubIndex_p,
119     void *       pDstData_p,
120     tEplObdSize *pSize_p);
121
122 // ---------------------------------------------------------------------
123 EPLDLLEXPORT tEplKernel PUBLIC EplObdSetStoreLoadObjCallback (EPL_MCO_DECL_INSTANCE_PTR_
124     tEplObdStoreLoadObjCallback fpCallback_p);
125
126 // ---------------------------------------------------------------------
127 EPLDLLEXPORT tEplKernel PUBLIC EplObdAccessOdPart (EPL_MCO_DECL_INSTANCE_PTR_
128     tEplObdPart ObdPart_p,
129     tEplObdDir Direction_p);
130
131 // ---------------------------------------------------------------------
132 EPLDLLEXPORT tEplKernel PUBLIC EplObdDefineVar (EPL_MCO_DECL_INSTANCE_PTR_
133     tEplVarParam MEM*          pVarParam_p);
134
135 // ---------------------------------------------------------------------
136 EPLDLLEXPORT void* PUBLIC EplObdGetObjectDataPtr (EPL_MCO_DECL_INSTANCE_PTR_
137                                         unsigned int uiIndex_p,
138                                         unsigned int uiSubIndex_p);
139 // ---------------------------------------------------------------------
140 EPLDLLEXPORT tEplKernel PUBLIC EplObdRegisterUserOd (EPL_MCO_DECL_INSTANCE_PTR_
141                                         tEplObdEntryPtr pUserOd_p);
142
143 // ---------------------------------------------------------------------
144 EPLDLLEXPORT void PUBLIC EplObdInitVarEntry (EPL_MCO_DECL_INSTANCE_PTR_
145                                         tEplObdVarEntry MEM* pVarEntry_p,
146                                         tEplObdType Type_p, 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* pAccessTyp_p);
185
186 // ---------------------------------------------------------------------
187 EPLDLLEXPORT tEplKernel PUBLIC EplObdSearchVarEntry (EPL_MCO_DECL_INSTANCE_PTR_
188     unsigned int            uiIndex_p,
189     unsigned int            uiSubindex_p,
190     tEplObdVarEntry MEM**   ppVarEntry_p);
191
192 #endif // end of #if(((EPL_MODULE_INTEGRATION) & (EPL_MODULE_OBDK)) != 0)
193
194 #endif  // #ifndef _EPLOBDK_H_
195
196