Commit graph

35 commits

Author SHA1 Message Date
DataHoarder c6127bd30e Allow resource4 module version to not exist on modules part of kernel
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-27 11:05:37 +01:00
DataHoarder e2392eadf7 Added logging on several functions, match line count of target better, patched differences
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
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
DataHoarder 1075e154e3 added fm_platXcvrInfo->resendEvent
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-05 21:13:38 +01:00
DataHoarder 0323475110 Added rpath to Makefile.am
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-02 08:16:12 +01:00
DataHoarder 3776b9148f Added several const values, and other static analysis fixes
All checks were successful
continuous-integration/drone/push Build is passing
Added fm_ctext for const char*

Shift headers due to dependencies
2021-11-02 07:00:10 +01:00
DataHoarder 93e8b23145
Add ability to use raw PCIe mapped resource4 (BAR4) (#2)
All checks were successful
continuous-integration/drone/push Build is passing
This allows using raw PCIe mapped BAR4 resources for management. MSI interrupts are not supported.
Even when using a module that does not support UIO, management engine can still be used.

Usage example under _fm_platform_attributes.cfg_

```
api.platform.config.switch.0.resource4DevName text /sys/bus/pci/devices/0000:84:00.0/resource4
```

Should work under containers and links, given the actual device is the target and not the resource.

Co-authored-by: WeebDataHoarder <57538841+weebdatahoarder@users.noreply.github.com>
Reviewed-on: Sillycom/IES#2
Co-authored-by: DataHoarder <weebdatahoarder@noreply.gammaspectra.live>
Co-committed-by: DataHoarder <weebdatahoarder@noreply.gammaspectra.live>
2021-10-28 17:54:08 +00:00
DataHoarder 5a54208178 Fix several logic issues
All checks were successful
continuous-integration/drone/push Build is passing
2021-10-28 08:57:19 +02:00
DataHoarder 160148d755 Fix invalid check on FM_TYPE_PAUSE_PACING_TIME on fmComparePortAttributes 2021-10-28 08:37:30 +02:00
DataHoarder 89b0a0ea96 Fix NULL pointer check for ppArpBlkCtrl2 (was dupe error) 2021-10-28 08:28:05 +02:00
DataHoarder 4e680dd36e Rename _FM_ARCH_x86_64 to _FM_ARCH_64, as 64-bit is not x86 specific 2021-10-28 08:12:26 +02:00
DataHoarder 82bd01ed92 Remove #include <sys/io.h>, prevents arm64 build
All checks were successful
continuous-integration/drone/push Build is passing
2021-10-28 08:04:13 +02:00
DataHoarder a173ab48d1 Build on clang, and also arm
Some checks reported errors
continuous-integration/drone/push Build was killed
2021-10-28 07:52:06 +02:00
DataHoarder 8412f3ddc9 Do not require removed files 2021-10-28 07:50:10 +02:00
DataHoarder 08f3536ab7 Revamp README and COPYING 2021-10-28 07:40:01 +02:00
DataHoarder 52c9d96d09
Implement Silicom card features (#1)
This implements several binary diff patches from 4.3.2 Silicom version of IES. Now FM10K devices are usable via a switch manager like _matchd_.

Co-authored-by: WeebDataHoarder <57538841+weebdatahoarder@users.noreply.github.com>
Reviewed-on: Sillycom/IES#1
Co-authored-by: DataHoarder <weebdatahoarder@noreply.gammaspectra.live>
Co-committed-by: DataHoarder <weebdatahoarder@noreply.gammaspectra.live>
2021-10-28 05:16:52 +00:00
DataHoarder 14688090d6 Added build configuration & .gitignore 2020-12-27 03:18:07 +01:00
DataHoarder 8f7af4ff07 Change FM_BUILD_IDENTIFIER to include -gammaspectra_sillycom_mod 2020-12-15 22:26:52 +01:00
DataHoarder ca97a65239 Implement VRM model IR read/write for Silicom cards 2020-12-15 22:26:40 +01:00
Jeremias Blendin f2607d88c6 Fix include in fm_generic_rawsocket.c for Ubuntu 20.04 2020-10-02 20:59:48 -07:00
Derek Foster 1f40554c90 Update to release 4.3.0. 2016-02-04 11:29:43 -08:00
Derek Foster 8c1e5b6e94 Updated register definitions. 2016-01-08 11:14:39 -08:00
Derek Foster f2eef3689b Stable auto-negotiation port linking at 100G.
Consistent link recovery on 1G + AN + EEE ports.
2016-01-06 12:15:49 -08:00
Derek Foster cd34cf4c09 Disable learning on the PCIE ports by default. 2015-11-09 13:27:16 -08:00
Derek Foster aa2fb64a0b Update SPEC file for RPM build. 2015-11-09 13:09:51 -08:00
Derek Foster e1fed0e588 Updated to release 4.1.6. 2015-11-09 13:05:32 -08:00
Derek Foster 6363276705 Update SPEC file to support building RPMs with revised platform names. 2015-09-04 10:00:47 -07:00
Derek Foster 651766be34 Revised platform naming convention. 2015-09-03 16:09:04 -07:00
Derek Foster 0c6def4f27 Updated to release 4.1.5. 2015-08-31 08:29:36 -07:00
Derek Foster c002cacdb5 Install platform files. Support environment setup at startup. Update SPEC. 2015-08-17 16:43:10 -07:00
Derek Foster 7757d8ae34 Renamed config directory to platforms and removed rev1 files.
Install platform files. Support environment setup at startup. Update SPEC.
2015-08-17 14:48:31 -07:00
Derek Foster 00de348f67 Added support for Boulder Rapids platform. 2015-07-31 15:13:04 -07:00
Derek Foster 4a40a12721 Add Ruby Rapids configuration files. 2015-07-31 15:07:44 -07:00
Derek Foster 94d6631567 Update to release 4.1.4. 2015-07-31 14:26:54 -07:00
Derek Foster b6c34456aa Correct README.md headline. 2015-06-16 10:44:15 -07:00
Derek Foster d53a047943 Initial IES API 4.1.3 commit. 2015-06-12 11:02:05 -07:00