Compare commits

..

No commits in common. "a924d42e6a1c358a6c0c7d72bf0f0849faa2730d" and "7f963d7e43d0ca555e01aee6c79bcc2d5be30ec9" have entirely different histories.

8 changed files with 6 additions and 54 deletions

View File

@ -429,8 +429,8 @@ class Op(Node):
def __hash__(self) -> int: def __hash__(self) -> int:
return self.node_hash return self.node_hash
# Interface for vector and tensor types
class ArrayType(Generic[TNum]): class ArrayType(Generic[TNum]):
"""Interface for vector and tensor types."""
def __init__(self, shape: tuple[int, ...]) -> None: def __init__(self, shape: tuple[int, ...]) -> None:
self.shape = shape self.shape = shape
self.values: tuple[TNum | value[TNum], ...] = () self.values: tuple[TNum | value[TNum], ...] = ()

View File

@ -134,7 +134,7 @@ def get_const_nets(nodes: list[Node]) -> list[Net]:
def add_load_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], None, None]: def add_load_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], None, None]:
"""Add load/read node before each op where arguments are not already positioned """Add read node before each op where arguments are not already positioned
correctly in the registers correctly in the registers
Arguments: Arguments:
@ -172,7 +172,7 @@ def add_load_ops(node_list: list[Node]) -> Generator[tuple[Net | None, Node], No
def add_store_ops(net_node_list: list[tuple[Net | None, Node]], const_nets: list[Net]) -> Generator[tuple[Net | None, Node], None, None]: def add_store_ops(net_node_list: list[tuple[Net | None, Node]], const_nets: list[Net]) -> Generator[tuple[Net | None, Node], None, None]:
"""Add store/write operation for each new defined net if a read operation is later followed """Add write operation for each new defined net if a read operation is later followed
Returns: Returns:
Yields tuples of a net and a node. The associated net is provided for read and write nodes. Yields tuples of a net and a node. The associated net is provided for read and write nodes.

View File

@ -33,14 +33,11 @@ class relocation_entry:
@dataclass @dataclass
class patch_entry: class patch_entry:
""" """
A dataclass for representing a patch entry A dataclass for representing a relocation entry
Attributes: Attributes:
mask (int): Bit-mask to apply to the patched value addr (int): address of first byte to patch relative to the start of the symbol
address (int): Address where to patch type (RelocationType): relocation type
value (int): The value to write at the patch address
scale (int): The scale factor for the patch value
patch_type (int): The type of patch
""" """
mask: int mask: int
address: int address: int
@ -50,10 +47,6 @@ class patch_entry:
def detect_process_arch() -> str: def detect_process_arch() -> str:
"""For running the code locally in the python module
the architecture of the current process is detected
by this function to load the correct stencil database.
"""
cp_target_arch = os.environ.get("CP_TARGET_ARCH") cp_target_arch = os.environ.get("CP_TARGET_ARCH")
if cp_target_arch: if cp_target_arch:
return cp_target_arch return cp_target_arch

View File

@ -1,15 +1,3 @@
/*
* file: coparun.c
* Description: This file alows to run copapy programs in the command line
* reading copapy data, code and patch instructions from a file and jump to the
* entry point to execute it or dump the patched code memory for debugging to a file.
*
* It's intended for testing and debugging purposes, to run copapy programs in a
* debugger or emulator like qemu.
*
* Usage: coparun <code_file> [memory_dump_file]
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "runmem.h" #include "runmem.h"

View File

@ -1,10 +1,3 @@
/*
* file: coparun_module.c
* Description: This file defines a Python C extension module that provides an
* interface to the core functions of the coparun runner, to run copapy programs
* directly local in Python.
*/
#define PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN
#include <Python.h> #include <Python.h>
#include "runmem.h" #include "runmem.h"

View File

@ -1,11 +1,3 @@
/*
* file: mem_man.c
* Description: This file contains memory management functions for the coparun
* runner, including allocation and deallocation of executable and data memory.
* Depending of the target operating system or bare metal environment, it
* handles memory management accordingly.
*/
#include <stdio.h> #include <stdio.h>
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -1,10 +1,3 @@
/*
* file: runmem.c
* Description: This file contain the core functions of the runner
* to receive data, code and patch instruction, does the patching
* and jumps to the entry point of the copapy program
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

View File

@ -1,10 +1,3 @@
/**
* @file runmem.h
* @brief Header file for runmem.c, which contains core functions of
* the runner to receive data, code and patch instructions, perform
* patching, and jump to the entry point of the copapy program.
*/
#ifndef RUNMEM_H #ifndef RUNMEM_H
#define RUNMEM_H #define RUNMEM_H