Merge branch 'feat/lint_kconfig_in_hal' into 'master'

feat(ci): add ast-grep rules to lint kconfig in the hal

Closes IDF-8791

See merge request espressif/esp-idf!35180
This commit is contained in:
morris
2024-12-01 23:30:30 +08:00
15 changed files with 123 additions and 19 deletions

View File

@@ -5,7 +5,6 @@
*/
#include <sys/param.h>
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "hal/adc_hal_common.h"
#include "hal/adc_ll.h"

View File

@@ -4,7 +4,6 @@
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include <sys/param.h>
#include "soc/soc_caps.h"
#include "hal/efuse_ll.h"

View File

@@ -4,7 +4,6 @@
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include <sys/param.h>
#include "soc/soc_caps.h"
#include "hal/assert.h"

View File

@@ -4,7 +4,6 @@
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include <sys/param.h>
#include "soc/soc_caps.h"
#include "hal/assert.h"

View File

@@ -5,7 +5,6 @@
*/
#pragma once
#include "sdkconfig.h"
#include "soc/pcr_struct.h"
#include "hal/ahb_dma_ll.h"
#define GDMA_LL_AHB_BURST_SIZE_ADJUSTABLE 1 // AHB GDMA supports adjustable burst size

View File

@@ -18,7 +18,7 @@
#include "esp_attr.h"
#include "hal/assert.h"
#include "soc/hp_sys_clkrst_struct.h"
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#ifdef __cplusplus
extern "C" {
@@ -125,7 +125,7 @@ FORCE_INLINE_ATTR void _assist_debug_ll_enable_bus_clock(bool enable)
FORCE_INLINE_ATTR void _assist_debug_ll_reset_register(void)
{
/* esp32p4 has no assist_debug reset register: disable & clear interrupts manually. */
for (int i = 0; i < CONFIG_SOC_CPU_CORES_NUM; i++) {
for (int i = 0; i < SOC_CPU_CORES_NUM; i++) {
assist_debug_ll_sp_spill_monitor_disable(i);
assist_debug_ll_sp_spill_interrupt_clear(i);
assist_debug_ll_sp_spill_set_min(i, 0);

View File

@@ -5,7 +5,6 @@
*/
#pragma once
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "soc/regdma.h"

View File

@@ -15,7 +15,6 @@
#pragma once
#include <esp_err.h>
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#if SOC_RTCIO_PIN_COUNT > 0

View File

@@ -7,7 +7,6 @@
#include <stdint.h>
#include <sys/param.h>
#include <string.h>
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "hal/assert.h"
#include "hal/log.h"

View File

@@ -7,7 +7,6 @@
#include <stdint.h>
#include <stdlib.h>
#include <esp_types.h>
#include "sdkconfig.h"
#include "esp_attr.h"
#include "soc/soc.h"
#include "hal/lp_timer_ll.h"

View File

@@ -10,7 +10,6 @@
#include "esp_types.h"
#include "esp_attr.h"
#include "esp_err.h"
#include "sdkconfig.h"
#include "soc/spi_periph.h"
#include "soc/lldesc.h"
#include "soc/soc_caps.h"

View File

@@ -1,2 +1,2 @@
ruleDirs:
- ./tools/ci/sg_rules
- tools/ci/sg_rules

View File

@@ -0,0 +1,114 @@
# Refer to https://ast-grep.github.io/guide/rule-config.html for Rule Essentials
id: no-kconfig-in-hal-component
message: Don't use Kconfig macros in the hal component
severity: error # error, warning, info, hint
note: hal component should be able to deliver without 3rd party config system
language: C
files:
- "components/hal/**/*"
ignores:
# porting layer and test apps are allowed to use Kconfig macros
- "components/hal/platform_port/**/*"
- "components/hal/test_apps/**/*"
# the following files should be refactored to remove Kconfig macros
- "components/hal/adc_hal.c"
- "components/hal/adc_oneshot_hal.c"
- "components/hal/apm_hal.c"
- "components/hal/ecdsa_hal.c"
- "components/hal/emac_hal.c"
- "components/hal/mmu_hal.c"
- "components/hal/sha_hal.c"
- "components/hal/spi_flash_encrypt_hal_iram.c"
- "components/hal/spi_flash_hal_iram.c"
- "components/hal/spi_flash_hal.c"
- "components/hal/spi_hal_iram.c"
- "components/hal/spi_hal.c"
- "components/hal/spi_slave_hal_iram.c"
- "components/hal/twai_hal_iram.c"
- "components/hal/twai_hal.c"
- "components/hal/usb_dwc_hal.c"
- "components/hal/wdt_hal_iram.c"
- "components/hal/esp32/efuse_hal.c"
- "components/hal/esp32/gpio_hal_workaround.c"
- "components/hal/esp32/include/hal/twai_ll.h"
- "components/hal/esp32/include/hal/uart_ll.h"
- "components/hal/esp32c2/clk_tree_hal.c"
- "components/hal/*/efuse_hal.c"
- "components/hal/include/hal/adc_types.h"
- "components/hal/include/hal/adc_hal.h"
- "components/hal/include/hal/apm_hal.h"
- "components/hal/include/hal/ecdsa_hal.h"
- "components/hal/include/hal/emac_hal.h"
- "components/hal/include/hal/gpio_hal.h"
- "components/hal/include/hal/mmu_hal.h"
- "components/hal/include/hal/pmu_types.h"
- "components/hal/include/hal/sha_types.h"
- "components/hal/include/hal/spi_slave_hal.h"
- "components/hal/include/hal/spi_types.h"
- "components/hal/include/hal/touch_sensor_legacy_types.h"
- "components/hal/include/hal/twai_types.h"
rule:
any:
- kind: argument_list
has:
kind: identifier
pattern: $N
- kind: preproc_if
has:
field: condition
pattern: $M
constraints:
N:
regex: "^CONFIG"
M:
regex: "^CONFIG"
---
id: no-sdkconfig-include-in-hal-component
message: Don't include sdkconfig.h in the hal component
severity: error # error, warning, info, hint
note: hal component should be able to deliver without 3rd party config system
language: C
files:
- "components/hal/**/*"
ignores:
# porting layer and test apps are allowed to include sdkconfig.h
- "components/hal/platform_port/**/*"
- "components/hal/test_apps/**/*"
# the following files should be refactored to remove sdkconfig.h
- "components/hal/adc_hal.c"
- "components/hal/adc_oneshot_hal.c"
- "components/hal/cache_hal.c"
- "components/hal/emac_hal.c"
- "components/hal/mmu_hal.c"
- "components/hal/mpi_hal.c"
- "components/hal/spi_flash_hal_iram.c"
- "components/hal/twai_hal_iram.c"
- "components/hal/twai_hal.c"
- "components/hal/usb_dwc_hal.c"
- "components/hal/efuse_hal.c"
- "components/hal/esp32/include/hal/twai_ll.h"
- "components/hal/esp32c2/clk_tree_hal.c"
- "components/hal/*/efuse_hal.c"
- "components/hal/include/hal/adc_types.h"
- "components/hal/include/hal/ecdsa_hal.h"
- "components/hal/include/hal/modem_clock_hal.h"
- "components/hal/include/hal/mpi_hal.h"
- "components/hal/include/hal/pmu_types.h"
- "components/hal/include/hal/rtc_hal.h"
- "components/hal/include/hal/sha_types.h"
- "components/hal/include/hal/spi_slave_hal.h"
- "components/hal/include/hal/spi_types.h"
- "components/hal/include/hal/touch_sensor_legacy_types.h"
- "components/hal/include/hal/twai_hal.h"
- "components/hal/include/hal/twai_types.h"
rule:
kind: preproc_include
has:
field: path
pattern: $N
constraints:
N:
regex: '^["<]sdkconfig' # match "sdkconfig.h" or <sdkconfig.h>
fix: ''

View File

@@ -5,7 +5,7 @@ severity: error # error, warning, info, hint
note: Only APIs prefixed with "esp_rom_" are treated as public.
language: C
files:
- "./examples/**/*"
- "examples/**/*"
rule:
kind: preproc_include
has:
@@ -22,7 +22,7 @@ severity: error # error, warning, info, hint
note: Only APIs prefixed with "esp_rom_" are treated as public.
language: Cpp
files:
- "./examples/**/*"
- "examples/**/*"
rule:
kind: preproc_include
has:

View File

@@ -5,9 +5,9 @@ severity: error # error, warning, info, hint
note: The standard assert function depends on newlib(G1) component, but hal is a G0 component
language: C
files:
- "./components/hal/**/*"
- "components/hal/**/*"
ignores:
- "./components/hal/test_apps/**/*"
- "components/hal/test_apps/**/*"
rule:
kind: expression_statement
pattern: assert($$$ARGS);
@@ -21,9 +21,9 @@ severity: error # error, warning, info, hint
note: Please use hal/assert.h to replace assert.h
language: C
files:
- "./components/hal/**/*"
- "components/hal/**/*"
ignores:
- "./components/hal/test_apps/**/*"
- "components/hal/test_apps/**/*"
rule:
kind: preproc_include
has: