mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 20:41:14 +00:00
feat(esp_tee): Support for ESP-TEE - the main
component
This commit is contained in:
50
components/esp_tee/scripts/secure_service_tbl.py
Normal file
50
components/esp_tee/scripts/secure_service_tbl.py
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python
|
||||
# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
import argparse
|
||||
import re
|
||||
import sys
|
||||
from typing import Dict
|
||||
from typing import Tuple
|
||||
|
||||
|
||||
def emit(nr: int, entry: str, nargs: str) -> str:
|
||||
return f'__SECURE_SERVICE({nr}, {entry}, {nargs})'
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description='Generate secure service table')
|
||||
parser.add_argument('input_file', type=str, help='Path to input file')
|
||||
parser.add_argument('output_file', type=str, help='Path to output file')
|
||||
args = parser.parse_args()
|
||||
|
||||
services: Dict[int, Tuple[str, str, str]] = {}
|
||||
pattern: re.Pattern = re.compile(r'^([0-9A-Fa-fXx]+)\s+(\S+)\s+(\S+)\s+(\d+)')
|
||||
|
||||
# Single pass through file to collect services and check duplicates
|
||||
with open(args.input_file, 'r') as f:
|
||||
for line in f:
|
||||
if match := pattern.match(line):
|
||||
nr = int(match.group(1))
|
||||
if nr in services:
|
||||
print('ERROR: Found duplicate secure service numbers, exiting...')
|
||||
sys.exit(1)
|
||||
services[nr] = (match.group(2), match.group(3), match.group(4))
|
||||
|
||||
# Generate output
|
||||
with open(args.output_file, 'w') as f:
|
||||
f.write('''/**
|
||||
* This header file is used to define secure services.
|
||||
*
|
||||
* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT!
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
''')
|
||||
for nr in sorted(services):
|
||||
_, name, nargs = services[nr]
|
||||
f.write(emit(nr, name, nargs) + '\n')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Reference in New Issue
Block a user