{
  "ml": {
    "v": "4",
    "fs": [
      {
        "id": 0,
        "prob": 0.9174906611442566,
        "class": 0
      }
    ],
    "prob": 0.91749066,
    "class": 0,
    "version": "v16.16",
    "thresholds": [
      0.9815004,
      0.99404883
    ],
    "analyzed_at": "2026-04-30T03:29:02Z"
  },
  "path": "spi-ep93xx.c",
  "raw": {
    "v": "4",
    "fs": [
      {
        "f": "O₂(DyEr₂)",
        "x": 1,
        "id": 0,
        "is": [
          "spi_controller_get_devdata",
          "clk_get_rate",
          "clamp",
          "spi_controller_get_devdata",
          "bits_per_word_to_dss",
          "ep93xx_spi_calc_divisors",
          "dev_dbg",
          "dev_dbg",
          "writel",
          "writel",
          "spi_controller_get_devdata",
          "writel",
          "spi_controller_get_devdata",
          "readl",
          "spi_controller_get_devdata",
          "readl",
          "ep93xx_do_read",
          "ep93xx_do_write",
          "spi_controller_get_devdata",
          "memset",
          "ep93xx_dma_data_to_trans_dir",
          "dmaengine_slave_config",
          "ERR_PTR",
          "DIV_ROUND_UP",
          "sg_free_table",
          "sg_alloc_table",
          "ERR_PTR",
          "for_each_sg",
          "min_t",
          "sg_set_page",
          "virt_to_page",
          "offset_in_page",
          "sg_set_page",
          "virt_to_page",
          "WARN_ON",
          "dev_warn",
          "ERR_PTR",
          "dma_map_sg",
          "ERR_PTR",
          "dmaengine_prep_slave_sg",
          "dma_unmap_sg",
          "ERR_PTR",
          "spi_controller_get_devdata",
          "dma_unmap_sg",
          "ep93xx_spi_dma_finish",
          "ep93xx_spi_dma_finish",
          "spi_finalize_current_transfer",
          "spi_controller_get_devdata",
          "ep93xx_spi_dma_prepare",
          "IS_ERR",
          "dev_err",
          "PTR_ERR",
          "PTR_ERR",
          "ep93xx_spi_dma_prepare",
          "IS_ERR",
          "ep93xx_spi_dma_finish",
          "dev_err",
          "PTR_ERR",
          "PTR_ERR",
          "dmaengine_submit",
          "dmaengine_submit",
          "dma_async_issue_pending",
          "dma_async_issue_pending",
          "spi_controller_get_devdata",
          "readl",
          "writel",
          "dev_warn",
          "ep93xx_spi_read_write",
          "readl",
          "writel",
          "spi_finalize_current_transfer",
          "spi_controller_get_devdata",
          "ep93xx_spi_chip_setup",
          "dev_err",
          "ep93xx_spi_dma_transfer",
          "ep93xx_spi_read_write",
          "readl",
          "writel",
          "spi_controller_get_devdata",
          "msecs_to_jiffies",
          "readl",
          "time_after",
          "dev_warn",
          "readl",
          "spi_controller_get_devdata",
          "clk_prepare_enable",
          "readl",
          "writel",
          "spi_controller_get_devdata",
          "readl",
          "writel",
          "clk_disable_unprepare",
          "get_zeroed_page",
          "dma_request_chan",
          "IS_ERR",
          "dev_err_probe",
          "PTR_ERR",
          "dma_request_chan",
          "IS_ERR",
          "dev_err_probe",
          "PTR_ERR",
          "dma_release_channel",
          "free_page",
          "dma_release_channel",
          "sg_free_table",
          "dma_release_channel",
          "sg_free_table",
          "free_page",
          "platform_get_irq",
          "spi_alloc_host",
          "SPI_BPW_RANGE_MASK",
          "platform_set_drvdata",
          "spi_controller_get_devdata",
          "devm_clk_get",
          "IS_ERR",
          "dev_err",
          "PTR_ERR",
          "clk_get_rate",
          "clk_get_rate",
          "devm_platform_get_and_ioremap_resource",
          "IS_ERR",
          "PTR_ERR",
          "devm_request_irq",
          "dev_err",
          "ep93xx_spi_setup_dma",
          "dev_warn",
          "writel",
          "devm_spi_register_controller",
          "dev_err",
          "dev_info",
          "ep93xx_spi_release_dma",
          "spi_controller_put",
          "platform_get_drvdata",
          "spi_controller_get_devdata",
          "ep93xx_spi_release_dma",
          "MODULE_DEVICE_TABLE",
          "module_platform_driver",
          "MODULE_DESCRIPTION",
          "MODULE_AUTHOR",
          "MODULE_LICENSE",
          "MODULE_ALIAS"
        ],
        "ms": {
          "text": {
            "tab_count": 729.0,
            "digit_ratio": 0.03,
            "space_count": 1803.0,
            "total_lines": 738.0,
            "char_entropy": 5.34,
            "mixed_indent": true,
            "unique_chars": 93.0,
            "import_density": 19.11,
            "string_density": 0.09,
            "avg_line_length": 24.54,
            "max_line_length": 80.0,
            "empty_line_ratio": 0.15,
            "last_line_length": 36.0,
            "most_common_char": "e",
            "whitespace_ratio": 0.17,
            "most_common_ratio": 0.07,
            "identifier_density": 1.0,
            "line_length_stddev": 21.87,
            "normalized_import_count": 5.19,
            "normalized_string_count": 2.36,
            "repeated_char_sequences": 2.0,
            "suspicious_comment_ratio": 0.25,
            "max_inline_whitespace_run": 14.0,
            "normalized_function_count": 0.7,
            "imports_to_functions_ratio": 7.42,
            "strings_to_functions_ratio": 3.37,
            "suspicious_identifier_ratio": 0.01,
            "normalized_unique_identifiers": 17.32,
            "identifiers_to_functions_ratio": 8.68
          },
          "imports": {
            "total": 141.0,
            "unique_modules": 66.0,
            "third_party_count": 141.0,
            "third_party_ratio": 1.0
          },
          "strings": {
            "total": 64.0,
            "avg_length": 21.2,
            "max_length": 41.0,
            "avg_entropy": 3.54,
            "email_count": 2.0,
            "total_bytes": 1357.0,
            "entropy_stddev": 0.82
          },
          "comments": {
            "chars": 4591.0,
            "lines": 137.0,
            "total": 32.0,
            "to_code_ratio": 0.23,
            "url_in_comments": 1.0,
            "high_entropy_comments": 8.0
          },
          "functions": {
            "total": 19.0,
            "length_stddev": 23.86,
            "avg_name_length": 65.53,
            "no_params_count": 19.0,
            "avg_length_lines": 29.68,
            "max_length_lines": 96.0,
            "min_length_lines": 7.0,
            "high_entropy_names": 19.0,
            "density_per_100_lines": 2.57,
            "code_in_functions_ratio": 0.76
          },
          "identifiers": {
            "total": 736.0,
            "avg_length": 11.61,
            "max_length": 38.0,
            "min_length": 1.0,
            "avg_entropy": 2.72,
            "reuse_ratio": 0.22,
            "unique_count": 165.0,
            "length_stddev": 7.26,
            "has_digit_ratio": 0.22,
            "sequential_names": 1.0,
            "single_char_count": 1.0,
            "single_char_ratio": 0.01,
            "high_entropy_count": 30.0,
            "high_entropy_ratio": 0.18,
            "all_lowercase_ratio": 0.52,
            "all_uppercase_ratio": 0.27,
            "numeric_suffix_count": 3.0
          }
        },
        "ss": [
          [
            475,
            "\u003clinux/io.h\u003e"
          ],
          [
            497,
            "\u003clinux/clk.h\u003e"
          ],
          [
            520,
            "\u003clinux/err.h\u003e"
          ],
          [
            543,
            "\u003clinux/delay.h\u003e"
          ],
          [
            568,
            "\u003clinux/device.h\u003e"
          ],
          [
            594,
            "\u003clinux/dma-direction.h\u003e"
          ],
          [
            627,
            "\u003clinux/dma-mapping.h\u003e"
          ],
          [
            658,
            "\u003clinux/dmaengine.h\u003e"
          ],
          [
            687,
            "\u003clinux/bitops.h\u003e"
          ],
          [
            713,
            "\u003clinux/interrupt.h\u003e"
          ],
          [
            742,
            "\u003clinux/module.h\u003e"
          ],
          [
            768,
            "\u003clinux/property.h\u003e"
          ],
          [
            796,
            "\u003clinux/platform_device.h\u003e"
          ],
          [
            831,
            "\u003clinux/sched.h\u003e"
          ],
          [
            856,
            "\u003clinux/scatterlist.h\u003e"
          ],
          [
            887,
            "\u003clinux/spi/spi.h\u003e"
          ],
          [
            4394,
            "setup: mode %d, cpsr %d, scr %d, dss %d\\n"
          ],
          [
            4395,
            "setup: mode %d, cpsr %d, scr %d, dss %d"
          ],
          [
            4498,
            "setup: cr0 %#x\\n"
          ],
          [
            4499,
            "setup: cr0 %#x"
          ],
          [
            8997,
            "len = %zu expected 0!\\n"
          ],
          [
            8998,
            "len = %zu expected 0!"
          ],
          [
            10512,
            "DMA RX failed: %ld\\n"
          ],
          [
            10513,
            "DMA RX failed: %ld"
          ],
          [
            10720,
            "DMA TX failed: %ld\\n"
          ],
          [
            10721,
            "DMA TX failed: %ld"
          ],
          [
            11576,
            "receive overrun, aborting the message\\n"
          ],
          [
            11577,
            "receive overrun, aborting the message"
          ],
          [
            12658,
            "failed to setup chip for transfer\\n"
          ],
          [
            12659,
            "failed to setup chip for transfer"
          ],
          [
            13776,
            "timeout while flushing RX FIFO\\n"
          ],
          [
            13777,
            "timeout while flushing RX FIFO"
          ],
          [
            14892,
            "rx"
          ],
          [
            14893,
            "rx"
          ],
          [
            14978,
            "rx DMA setup failed"
          ],
          [
            14979,
            "rx DMA setup failed"
          ],
          [
            15067,
            "tx"
          ],
          [
            15068,
            "tx"
          ],
          [
            15153,
            "tx DMA setup failed"
          ],
          [
            15154,
            "tx DMA setup failed"
          ],
          [
            16736,
            "unable to get spi clock\\n"
          ],
          [
            16737,
            "unable to get spi clock"
          ],
          [
            17297,
            "ep93xx-spi"
          ],
          [
            17298,
            "ep93xx-spi"
          ],
          [
            17354,
            "failed to request irq\\n"
          ],
          [
            17355,
            "failed to request irq"
          ],
          [
            17552,
            "DMA setup failed. Falling back to PIO\\n"
          ],
          [
            17553,
            "DMA setup failed. Falling back to PIO"
          ],
          [
            17771,
            "failed to register SPI host\\n"
          ],
          [
            17772,
            "failed to register SPI host"
          ],
          [
            17853,
            "EP93xx SPI Controller at 0x%08lx irq %d\\n"
          ],
          [
            17854,
            "EP93xx SPI Controller at 0x%08lx irq %d"
          ],
          [
            18349,
            "cirrus,ep9301-spi"
          ],
          [
            18350,
            "cirrus,ep9301-spi"
          ],
          [
            18516,
            "ep93xx-spi"
          ],
          [
            18517,
            "ep93xx-spi"
          ],
          [
            18699,
            "EP93xx SPI Controller driver"
          ],
          [
            18700,
            "EP93xx SPI Controller driver"
          ],
          [
            18746,
            "Mika Westerberg \u003cmika.westerberg@iki.fi\u003e"
          ],
          [
            18747,
            "Mika Westerberg \u003cmika.westerberg@iki.fi\u003e"
          ],
          [
            18806,
            "GPL"
          ],
          [
            18807,
            "GPL"
          ],
          [
            18827,
            "platform:ep93xx-spi"
          ],
          [
            18828,
            "platform:ep93xx-spi"
          ]
        ],
        "sz": 18851,
        "ts": [
          {
            "c": 0.20000000298023224,
            "d": "output keyword",
            "e": [
              "output"
            ],
            "i": "micro-behaviors/data/text/keywords::output",
            "l": 1
          },
          {
            "c": 0.699999988079071,
            "d": "macOS who tool reference",
            "e": [
              "who"
            ],
            "i": "objectives/evasion/kernel-hide/rootkit::macos-who-ref",
            "l": 1
          },
          {
            "a": "T1106",
            "c": 0.9900000095367432,
            "d": "Linux kernel SPDX header",
            "e": [
              "SPDX-License-Identifier: GPL-2.0"
            ],
            "i": "micro-behaviors/os/syscall/invoke::kernel-spdx-gpl2",
            "l": 2
          },
          {
            "a": "T1106",
            "c": 0.9900000095367432,
            "d": "Linux kernel module header include (linux/module.h)",
            "e": [
              "linux/module.h"
            ],
            "i": "micro-behaviors/os/syscall/invoke::kernel-module-include-detect",
            "l": 1
          },
          {
            "c": 0.9900000095367432,
            "d": "Linux kernel module header detection",
            "e": [
              "\u003clinux/module.h\u003e"
            ],
            "i": "objectives/evasion/kernel-hide/lkm/headers::kernel-module-header-detect",
            "l": 2
          },
          {
            "a": "T1046",
            "c": 0.800000011920929,
            "d": "EINPROGRESS async connect state",
            "e": [
              "EINPROGRESS"
            ],
            "i": "objectives/discovery/network/scan/port::errno-einprogress",
            "l": 1,
            "m": "E1046"
          },
          {
            "c": 0.6000000238418579,
            "d": "Kernel error code return",
            "e": [
              "return -EINVAL;",
              "return -EINPROGRESS;",
              "return ERR_PTR(-EINVAL);",
              "return ERR_PTR(-ENOMEM);",
              "return ERR_PTR(-ENOMEM);",
              "return -ETIMEDOUT;",
              "return -ENOMEM;",
              "return -ENOMEM;"
            ],
            "i": "objectives/evasion/kernel-hide/lkm/internals::error-code-return",
            "l": 1
          }
        ],
        "sha": "89ec9e47abbcd42aec3988c1d49f8fcf94d7e68cd687c9c9acff2312d7bc81a3",
        "path": "/data/samples/good/repos/linux/drivers/spi/spi-ep93xx.c",
        "type": "c"
      }
    ],
    "tv": "f6eaa"
  }
}