Fork of Intel(R) Ethernet Switch (IES) Software API. Contains support for Silicom PE3100G2DQIRM-QX4, and other features.
Go to file
DataHoarder e2392eadf7
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
Added logging on several functions, match line count of target better, patched differences
Modified how EPL state machine gets initialized

Use this script to debug differences with relative line numbers

```php
<?php

$entries = [];
$indentation = [];

$r = [
 "#( pSwapRomImg=)(0x[0-9a-f]+)#" => '$1(ptr)',
 "#([hH]andle=)(0x[0-9a-f]+)#" => '$1(ptr)',
 "#( code=)(0x[0-9a-f]+)#" => '$1(ptr)',
 "#( glort=)(0x[0-9a-f]+)#" => '$1(ptr)',
 "#([pP]tr=)(0x[0-9a-f]+)#" => '$1(ptr)',
 "#( schedPortSpeeds=)(0x[0-9a-f]+)#" => '$1(ptr)',
 "#(= ?)(0x[0-9a-f]{8,})#" => '$1(ptr)',
];

$find = [];
$replace = [];

foreach($r as $k => $v){
	$find[] = $k;
	$replace[] = $v;
}

$stack = ["__main"];

while(!feof(STDIN) and ($line = fgets(STDIN)) !== false){
	$line = trim($line);
	$parts = explode(":", $line);
	$indent = 0;
	if(count($parts) >= 6){
		$p = $parts;
		switch($parts[0]){
			case "ENTRY":
				//Example: ENTRY:fsmd:alos/linux/fm_alos_alloc.c:fmAlloc:580:Entering... size=32
				$k = $p[1] . ":" . $p[2] . ":" . $p[3];

				//line number
				if(isset($entries[$k])){
					$entries[$k][] = (int) $p[4];
				}else{
					$entries[$k] = [(int) $p[4]];
				}

			case "EXIT":
			case "WARNING":
			case "ERROR":
			case "FATAL":
			case "INFO":
			case "DEBUG":
			case "PRINT":
			case "DEBUG2":
			case "DEBUG3":
			case "ASSERT":
			case "UNKNOWN_LVL":
				$k = $p[1] . ":" . $p[2] . ":" . $p[3];
				if(isset($entries[$k])){
					$parts[4] = "+" . (((int) $p[4]) - end($entries[$k])); //Relative position
				}else{
					$parts[4] = "@" . $p[4]; //Absolute position
				}

				if($parts[0] === "EXIT" and isset($entries[$k])){
					$indentation[$p[1]] = isset($indentation[$p[1]]) ? $indentation[$p[1]] - 1 : 0;
					array_pop($entries[$k]);
					if(count($entries[$k]) === 0){
						unset($entries[$k]);
					}

					do{

					}while(count($stack) > 0 and array_pop($stack) !== $p[3]);
					if(count($stack) === 0){
						echo "TOO MANY EXITS " . $p[3] . PHP_EOL;
					}

				}
				$parts[3] = end($stack) . " -> " . $parts[3];
				$indent = $indentation[$parts[1]] ?? 0;
				if($p[0] === "ENTRY"){
					$indentation[$p[1]] = isset($indentation[$p[1]]) ? $indentation[$p[1]] + 1 : 1;
					$stack[] = $p[3];
				}
				$parts[3] = "  " . $parts[3];
				unset($parts[2]); //Remove file name

				$parts[5] = preg_replace($find, $replace, $p[5]);
				break;
		}
	}

	echo str_repeat(" ", $indent) . implode(":", $parts) . PHP_EOL;
}

foreach($entries as $k => $missing){
	echo "$k is missing exit on ". count($missing) . " entries" . PHP_EOL;
}

```
2021-11-08 13:44:45 +01:00
dist Update to release 4.3.0. 2016-02-04 11:29:43 -08:00
include Added logging on several functions, match line count of target better, patched differences 2021-11-08 13:44:45 +01:00
src Added logging on several functions, match line count of target better, patched differences 2021-11-08 13:44:45 +01:00
.drone.jsonnet Build on clang, and also arm 2021-10-28 07:52:06 +02:00
.gitignore Added rpath to Makefile.am 2021-11-02 08:16:12 +01:00
autogen.sh Initial IES API 4.1.3 commit. 2015-06-12 11:02:05 -07:00
configure.ac Do not require removed files 2021-10-28 07:50:10 +02:00
COPYING Revamp README and COPYING 2021-10-28 07:40:01 +02:00
Makefile.am Rename _FM_ARCH_x86_64 to _FM_ARCH_64, as 64-bit is not x86 specific 2021-10-28 08:12:26 +02:00
README.md Revamp README and COPYING 2021-10-28 07:40:01 +02:00
version.sh Initial IES API 4.1.3 commit. 2015-06-12 11:02:05 -07:00

Intel(R) Ethernet Switch (IES) Software API - GammaSpectra Sillycom Mod

Patched version of Intel's IES, based on version 4.3.0_0447_00330361. Includes patches to make Silicom cards work, and other bugfixes and/or improvements.

Switch Manager

Feel free to write your own against the interface provided. See match as an example Switch Manager.

Binary Diffing

Check out IES-binary-diffing project for a ready to use setup for binary comparing against compiled shared libraries, matching compilation environment.