parser.add_argument("--enable-lineno", action="store_true",
help="enable lineno")
parser.add_argument("--raw", action="store_true",
help="output text as contained in the ABI files. " "It not used, output will contain dynamically" " generated cross references when possible.")
parser.add_argument("--no-file", action="store_true",
help="Don't the files section")
parser.add_argument("--show-hints", help="Show-hints")
UNDEFINED_DESC="""
Check undefined ABIs on local machine.
Read sysfs devnodes and check if the devnodes there are defined inside
ABI documentation.
The search logic tries to minimize the number of regular expressions to
search per each symbol.
By default, it runs on a single CPU, as Python support for CPU threads is still experimental, and multi-process runs on Python is very slow.
On experimental tests, if the number of ABI symbols to search per devnode is contained on a limit of ~150 regular expressions, using a single CPU is a lot faster than using multiple processes. However, if the number of
regular expressions to check is at the order of ~30000, using multiple
CPUs speeds up the check. """
class AbiUndefined: """
Initialize an argparse subparser for logic to check undefined ABI at
the current machine's sysfs """
parser.add_argument("-S", "--sysfs-dir", default="/sys",
help="directory where sysfs is mounted")
parser.add_argument("-s", "--search-string",
help="search string regular expression to limit symbol search")
parser.add_argument("-H", "--show-hints", action="store_true",
help="Hints about definitions for missing ABI symbols.")
parser.add_argument("-j", "--jobs", "--max-workers", type=int, default=1,
help="If bigger than one, enables multiprocessing.")
parser.add_argument("-c", "--max-chunk-size", type=int, default=50,
help="Maximum number of chunk size")
parser.add_argument("-f", "--found", action="store_true",
help="Also show found items. " "Helpful to debug the parser."),
parser.add_argument("-d", "--dry-run", action="store_true",
help="Don't actually search for undefined. " "Helpful to debug the parser."),
parser.set_defaults(func=self.run)
def run(self, args): """Run subparser"""
abi = AbiRegex(args.dir, debug=args.debug,
search_string=args.search_string)