@@ -19,76 +19,86 @@ ctypedef void* lefiUserData
1919
2020# These typedefs define the function signatures of each LEF parser callback.
2121# (Order same as in lefrReader.hpp)
22- ctypedef int (* lefrVoidCbkFnType) (lefrCallbackType_e,
23- void * num,
24- lefiUserData);
25- ctypedef int (* lefrStringCbkFnType) (lefrCallbackType_e,
26- const char * string,
27- lefiUserData);
28- ctypedef int (* lefrIntegerCbkFnType) (lefrCallbackType_e,
29- int number,
30- lefiUserData);
31- ctypedef int (* lefrDoubleCbkFnType) (lefrCallbackType_e,
32- double number,
33- lefiUserData);
34- ctypedef int (* lefrUnitsCbkFnType) (lefrCallbackType_e,
35- lefiUnits* units,
36- lefiUserData);
37- ctypedef int (* lefrLayerCbkFnType) (lefrCallbackType_e,
38- lefiLayer* l,
39- lefiUserData);
40- ctypedef int (* lefrViaRuleCbkFnType) (lefrCallbackType_e,
41- lefiViaRule* l,
42- lefiUserData);
43- ctypedef int (* lefrSiteCbkFnType) (lefrCallbackType_e,
44- lefiSite* l,
45- lefiUserData);
46- ctypedef int (* lefrMacroCbkFnType) (lefrCallbackType_e,
47- lefiMacro* l,
48- lefiUserData);
49- ctypedef int (* lefrPinCbkFnType) (lefrCallbackType_e,
50- lefiPin* l,
51- lefiUserData);
52- ctypedef int (* lefrObstructionCbkFnType) (lefrCallbackType_e,
53- lefiObstruction* l,
54- lefiUserData);
55- ctypedef int (* lefrUseMinSpacingCbkFnType) (lefrCallbackType_e,
56- lefiUseMinSpacing* l,
57- lefiUserData);
58- ctypedef int (* lefrMaxStackViaCbkFnType) (lefrCallbackType_e,
59- lefiMaxStackVia* l,
60- lefiUserData);
6122
6223ctypedef void (* LEFI_LOG_FUNCTION) (const char * );
6324ctypedef void (* LEFI_WARNING_LOG_FUNCTION) (const char * );
6425
65- # Must declare everything we reference from lefrReader.hpp here
66- cdef extern from " lefrReader.hpp" :
67- int lefrInit()
68- int lefrRead (FILE * file , const char * fileName, void * userData)
26+ # Must declare everything we reference from lefiMisc.hpp here
27+ cdef extern from " lefiMisc.hpp" namespace " LefParser" :
28+ # Structs defining generic geometries
29+ cdef struct lefiGeomRect:
30+ double xl
31+ double yl
32+ double xh
33+ double yh
34+ int colorMask
6935
70- # Callback setters
71- void lefrSetVersionCbk(lefrDoubleCbkFnType)
72- void lefrSetBusBitCharsCbk(lefrStringCbkFnType)
73- void lefrSetDividerCharCbk(lefrStringCbkFnType)
74- void lefrSetUnitsCbk(lefrUnitsCbkFnType)
75- void lefrSetManufacturingCbk(lefrDoubleCbkFnType)
76- void lefrSetUseMinSpacingCbk(lefrUseMinSpacingCbkFnType)
77- void lefrSetClearanceMeasureCbk(lefrStringCbkFnType)
78- void lefrSetFixedMaskCbk(lefrIntegerCbkFnType)
79- void lefrSetLayerCbk(lefrLayerCbkFnType)
80- void lefrSetMaxStackViaCbk(lefrMaxStackViaCbkFnType)
81- void lefrSetViaRuleCbk(lefrViaRuleCbkFnType)
82- void lefrSetSiteCbk(lefrSiteCbkFnType)
83- void lefrSetMacroBeginCbk(lefrStringCbkFnType)
84- void lefrSetPinCbk(lefrPinCbkFnType)
85- void lefrSetObstructionCbk(lefrObstructionCbkFnType)
86- void lefrSetMacroCbk(lefrMacroCbkFnType)
36+ cdef struct lefiGeomRectIter:
37+ double xl
38+ double yl
39+ double xh
40+ double yh
41+ double xStart
42+ double yStart
43+ double xStep
44+ double yStep
45+ int colorMask
8746
88- # Additional callbacks
89- void lefrSetLogFunction(LEFI_LOG_FUNCTION)
90- void lefrSetWarningLogFunction(LEFI_WARNING_LOG_FUNCTION)
47+ cdef struct lefiGeomPath:
48+ int numPoints
49+ double * x
50+ double * y
51+ int colorMask
9152
53+ cdef struct lefiGeomPathIter:
54+ int numPoints
55+ double * x
56+ double * y
57+ double xStart
58+ double yStart
59+ double xStep
60+ double yStep
61+ int colorMask
62+
63+ cdef struct lefiGeomPolygon:
64+ int numPoints
65+ double * x
66+ double * y
67+ int colorMask
68+
69+ cdef struct lefiGeomPolygonIter:
70+ int numPoints
71+ double * x
72+ double * y
73+ double xStart
74+ double yStart
75+ double xStep
76+ double yStep
77+ int colorMask
78+
79+ cdef struct lefiGeomVia:
80+ char * name
81+ double x
82+ double y
83+ int topMaskNum
84+ int cutMaskNum
85+ int bottomMaskNum
86+
87+ cdef struct lefiGeomViaIter:
88+ char * name
89+ double x
90+ double y
91+ double xStart
92+ double yStart
93+ double xStep
94+ double yStep
95+ int topMaskNum
96+ int cutMaskNum
97+ int bottomMaskNum
98+
99+
100+ # Must declare everything we reference from lefrReader.hpp here
101+ cdef extern from " lefrReader.hpp" namespace " LefParser" :
92102 # Some enums we need to reference
93103 ctypedef enum lefrCallbackType_e:
94104 lefrUnspecifiedCbkType,
@@ -151,6 +161,71 @@ cdef extern from "lefrReader.hpp":
151161 lefrMacroForeignCbkType,
152162 lefrLibraryEndCbkType
153163
164+ ctypedef int (* lefrVoidCbkFnType) (lefrCallbackType_e,
165+ void * num,
166+ lefiUserData);
167+ ctypedef int (* lefrStringCbkFnType) (lefrCallbackType_e,
168+ const char * string,
169+ lefiUserData);
170+ ctypedef int (* lefrIntegerCbkFnType) (lefrCallbackType_e,
171+ int number,
172+ lefiUserData);
173+ ctypedef int (* lefrDoubleCbkFnType) (lefrCallbackType_e,
174+ double number,
175+ lefiUserData);
176+ ctypedef int (* lefrUnitsCbkFnType) (lefrCallbackType_e,
177+ lefiUnits* units,
178+ lefiUserData);
179+ ctypedef int (* lefrLayerCbkFnType) (lefrCallbackType_e,
180+ lefiLayer* l,
181+ lefiUserData);
182+ ctypedef int (* lefrViaRuleCbkFnType) (lefrCallbackType_e,
183+ lefiViaRule* l,
184+ lefiUserData);
185+ ctypedef int (* lefrSiteCbkFnType) (lefrCallbackType_e,
186+ lefiSite* l,
187+ lefiUserData);
188+ ctypedef int (* lefrMacroCbkFnType) (lefrCallbackType_e,
189+ lefiMacro* l,
190+ lefiUserData);
191+ ctypedef int (* lefrPinCbkFnType) (lefrCallbackType_e,
192+ lefiPin* l,
193+ lefiUserData);
194+ ctypedef int (* lefrObstructionCbkFnType) (lefrCallbackType_e,
195+ lefiObstruction* l,
196+ lefiUserData);
197+ ctypedef int (* lefrUseMinSpacingCbkFnType) (lefrCallbackType_e,
198+ lefiUseMinSpacing* l,
199+ lefiUserData);
200+ ctypedef int (* lefrMaxStackViaCbkFnType) (lefrCallbackType_e,
201+ lefiMaxStackVia* l,
202+ lefiUserData);
203+
204+ int lefrInit()
205+ int lefrRead (FILE * file , const char * fileName, void * userData)
206+
207+ # Callback setters
208+ void lefrSetVersionCbk(lefrDoubleCbkFnType)
209+ void lefrSetBusBitCharsCbk(lefrStringCbkFnType)
210+ void lefrSetDividerCharCbk(lefrStringCbkFnType)
211+ void lefrSetUnitsCbk(lefrUnitsCbkFnType)
212+ void lefrSetManufacturingCbk(lefrDoubleCbkFnType)
213+ void lefrSetUseMinSpacingCbk(lefrUseMinSpacingCbkFnType)
214+ void lefrSetClearanceMeasureCbk(lefrStringCbkFnType)
215+ void lefrSetFixedMaskCbk(lefrIntegerCbkFnType)
216+ void lefrSetLayerCbk(lefrLayerCbkFnType)
217+ void lefrSetMaxStackViaCbk(lefrMaxStackViaCbkFnType)
218+ void lefrSetViaRuleCbk(lefrViaRuleCbkFnType)
219+ void lefrSetSiteCbk(lefrSiteCbkFnType)
220+ void lefrSetMacroBeginCbk(lefrStringCbkFnType)
221+ void lefrSetPinCbk(lefrPinCbkFnType)
222+ void lefrSetObstructionCbk(lefrObstructionCbkFnType)
223+ void lefrSetMacroCbk(lefrMacroCbkFnType)
224+
225+ # Additional callbacks
226+ void lefrSetLogFunction(LEFI_LOG_FUNCTION)
227+ void lefrSetWarningLogFunction(LEFI_WARNING_LOG_FUNCTION)
228+
154229 cdef enum lefiGeomEnum:
155230 lefiGeomUnknown,
156231 lefiGeomLayerE,
@@ -316,74 +391,3 @@ cdef extern from "lefrReader.hpp":
316391 lefiGeomViaIter* getViaIter(int index)
317392
318393 const char * getClass(int index)
319-
320- # Structs defining generic geometries
321- cdef struct lefiGeomRect:
322- double xl
323- double yl
324- double xh
325- double yh
326- int colorMask
327-
328- cdef struct lefiGeomRectIter:
329- double xl
330- double yl
331- double xh
332- double yh
333- double xStart
334- double yStart
335- double xStep
336- double yStep
337- int colorMask
338-
339- cdef struct lefiGeomPath:
340- int numPoints
341- double * x
342- double * y
343- int colorMask
344-
345- cdef struct lefiGeomPathIter:
346- int numPoints
347- double * x
348- double * y
349- double xStart
350- double yStart
351- double xStep
352- double yStep
353- int colorMask
354-
355- cdef struct lefiGeomPolygon:
356- int numPoints
357- double * x
358- double * y
359- int colorMask
360-
361- cdef struct lefiGeomPolygonIter:
362- int numPoints
363- double * x
364- double * y
365- double xStart
366- double yStart
367- double xStep
368- double yStep
369- int colorMask
370-
371- cdef struct lefiGeomVia:
372- char * name
373- double x
374- double y
375- int topMaskNum
376- int cutMaskNum
377- int bottomMaskNum
378-
379- cdef struct lefiGeomViaIter:
380- char * name
381- double x
382- double y
383- double xStart
384- double yStart
385- double xStep
386- double yStep
387- int topMaskNum
388- int cutMaskNum
389- int bottomMaskNum
0 commit comments