[r2]: / IoDrvSysfsGPIO / IoDrvSysfsGPIO / Cleanup / FreeScanData / svnobj  Maximize  Restore  History

Download this file

29 lines (28 with data), 3.6 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{attribute 'conditionalshow' := 'IoDrvDebug'}
METHOD FreeScanData
VAR_INPUT
END_VAR
VAR
	pCurConnector : POINTER TO IoConfigConnector;
	pParameter : POINTER TO IoConfigParameter;	
	i : UINT;
//Free device scan data
IF _uiScannedSlaves > 0 AND _pScanList <> 0 THEN
	pCurConnector := _pScanList;
	FOR i := 0 TO _uiScannedSlaves - 1 DO
		pParameter := pCurConnector^.pParameterList;
		IF pParameter <> 0 THEN
				IF (pParameter^.dwFlags AND IoStandard.ParameterValueFlags.PVF_POINTER) = IoStandard.ParameterValueFlags.PVF_POINTER THEN
					// dwValue is pointer
					IF pParameter^.dwValue <> 0 THEN
						SysMemFreeData(g_stComponentName, pParameter^.dwValue);
					END_IF
				END_IF
				pParameter := pParameter + SIZEOF(IoConfigParameter);	
			END_FOR
		pCurConnector := pCurConnector + SIZEOF(IoStandard.IoConfigConnector);
	END_FOR
	SysMemFreeData(g_stComponentName, _pScanList);
	_pScanList := 0;
 	_uiScannedSlaves := 0;
END_IF