diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-04-15 01:03:39 -0600 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-04-15 01:03:39 -0600 |
commit | 0450e14b3a86e4448537c03253eeebf509f8909e (patch) | |
tree | c3a38f842b610d0f72b9e1c0aba45c186b443bf0 /build-aux | |
parent | b1fcc4ac2f244dddd869054db5dc6753c099a3e0 (diff) | |
parent | ab99adc111425dd93a062e67b19943860296ecca (diff) |
Diffstat (limited to 'build-aux')
-rw-r--r-- | build-aux/measurestack/app_plugins.py | 52 |
1 files changed, 18 insertions, 34 deletions
diff --git a/build-aux/measurestack/app_plugins.py b/build-aux/measurestack/app_plugins.py index 16ac297..bbb0eae 100644 --- a/build-aux/measurestack/app_plugins.py +++ b/build-aux/measurestack/app_plugins.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: AGPL-3.0-or-later import re +import subprocess import typing from . import analyze, util @@ -271,9 +272,8 @@ re_lib9p_callee = re.compile( class Lib9PPlugin: tmessage_handlers: set[QName] | None lib9p_msgs: set[str] - _CONFIG_9P_NUM_SOCKS: int | None - CONFIG_9P_SRV_MAX_REQS: int | None - CONFIG_9P_SRV_MAX_DEPTH: int | None + _CONFIG_9P_MAX_CONNS: int | None + _CONFIG_9P_MAX_REQS: int | None formatters: typing.Collection[BaseName] def __init__( @@ -305,25 +305,25 @@ class Lib9PPlugin: ) lib9p_generated_c_fname = util.get_zero_or_one( - lambda fname: fname.endswith("lib9p/9p.generated.c"), arg_c_fnames + lambda fname: fname.endswith("lib9p/_core_generated.c"), arg_c_fnames ) # Read config ########################################################## def config_h_get(varname: str) -> int | None: if config_h_fname: - with open(config_h_fname, "r", encoding="utf-8") as fh: - for line in fh: - line = line.rstrip() - if line.startswith("#define"): - parts = line.split() - if parts[1] == varname: - return int(parts[2]) + line = subprocess.run( + ["cpp"], + input=f'#include "{config_h_fname}"\n{varname}\n', + check=True, + capture_output=True, + encoding="utf-8", + ).stdout.split("\n")[-2] + return int(eval(line)) # pylint: disable=eval-used return None - self._CONFIG_9P_NUM_SOCKS = config_h_get("_CONFIG_9P_NUM_SOCKS") - self.CONFIG_9P_SRV_MAX_REQS = config_h_get("CONFIG_9P_SRV_MAX_REQS") - self.CONFIG_9P_SRV_MAX_DEPTH = config_h_get("CONFIG_9P_SRV_MAX_DEPTH") + self._CONFIG_9P_MAX_CONNS = config_h_get("_CONFIG_9P_MAX_REQS") + self._CONFIG_9P_MAX_REQS = config_h_get("_CONFIG_9P_MAX_REQS") # Read sources ######################################################### @@ -348,12 +348,12 @@ class Lib9PPlugin: self.lib9p_msgs = lib9p_msgs def thread_count(self, name: QName) -> int: - assert self._CONFIG_9P_NUM_SOCKS - assert self.CONFIG_9P_SRV_MAX_REQS + assert self._CONFIG_9P_MAX_CONNS + assert self._CONFIG_9P_MAX_REQS if "read" in str(name.base()): - return self._CONFIG_9P_NUM_SOCKS + return self._CONFIG_9P_MAX_CONNS if "write" in str(name.base()): - return self._CONFIG_9P_NUM_SOCKS * self.CONFIG_9P_SRV_MAX_REQS + return self._CONFIG_9P_MAX_REQS return 1 def is_intrhandler(self, name: QName) -> bool: @@ -405,11 +405,6 @@ class Lib9PPlugin: self.formatters, self._skipmodel__vfctprintf ), } - if isinstance(self.CONFIG_9P_SRV_MAX_DEPTH, int): - ret[BaseName("srv_path_decref")] = analyze.SkipModel( - self.CONFIG_9P_SRV_MAX_DEPTH, - self._skipmodel_srv_path_decref, - ) return ret def _skipmodel__lib9p_validate_unmarshal_marshal( @@ -423,17 +418,6 @@ class Lib9PPlugin: return False return m_caller.group("grp") != m_callee.group("grp") - def _skipmodel_srv_path_decref( - self, chain: typing.Sequence[QName], call: QName - ) -> bool: - assert isinstance(self.CONFIG_9P_SRV_MAX_DEPTH, int) - if call.base() == BaseName("srv_path_decref"): - return len(chain) >= self.CONFIG_9P_SRV_MAX_DEPTH and all( - c.base() == BaseName("srv_path_decref") - for c in chain[-self.CONFIG_9P_SRV_MAX_DEPTH :] - ) - return False - def _skipmodel__vfctprintf( self, chain: typing.Sequence[QName], call: QName ) -> bool: |