From abaebe794039ae63eef7f2edaeba3f69b75fa7f1 Mon Sep 17 00:00:00 2001 From: cnc Date: Fri, 5 Jun 2026 08:43:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=BD=E5=BF=AB=E6=8E=A8=E8=BF=9B=EF=BC=9A?= =?UTF-8?q?=E6=94=B6=E7=B4=A7tooldata=E5=B7=A5=E5=85=B7=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E9=94=9A=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check-linuxcnc-tooldata-source-map.sh | 26 ++++++++++++++++++++++++++ docs/linuxcnc-tooldata-source-map.md | 8 ++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/check-linuxcnc-tooldata-source-map.sh b/check-linuxcnc-tooldata-source-map.sh index ff7d721..d182e41 100755 --- a/check-linuxcnc-tooldata-source-map.sh +++ b/check-linuxcnc-tooldata-source-map.sh @@ -22,6 +22,22 @@ grep -F 'TOOL_MMAP_READ_SRCS = emc/tooldata/tool_mmap_read.cc' \ "$linuxcnc_root/src/emc/tooldata/Submakefile" >/dev/null grep -F 'TOOL_WATCH_SRCS = emc/tooldata/tool_watch.cc' \ "$linuxcnc_root/src/emc/tooldata/Submakefile" >/dev/null +grep -F 'int main (int argc,char**argv)' \ + "$linuxcnc_root/src/emc/tooldata/tool_mmap_read.cc" >/dev/null +grep -F 'if (tool_mmap_user())' \ + "$linuxcnc_root/src/emc/tooldata/tool_mmap_read.cc" >/dev/null +grep -F 'idx_last = tooldata_last_index_get();' \ + "$linuxcnc_root/src/emc/tooldata/tool_mmap_read.cc" >/dev/null +grep -F 'if (tooldata_get(&tdata,idx) != IDX_OK)' \ + "$linuxcnc_root/src/emc/tooldata/tool_mmap_read.cc" >/dev/null +grep -F 'RCS_STAT_CHANNEL *stat = 0;' \ + "$linuxcnc_root/src/emc/tooldata/tool_watch.cc" >/dev/null +grep -F 'stat = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", "xemc", nmlfile);' \ + "$linuxcnc_root/src/emc/tooldata/tool_watch.cc" >/dev/null +grep -F 'EMC_STAT *emcStatus = static_cast(stat->get_address());' \ + "$linuxcnc_root/src/emc/tooldata/tool_watch.cc" >/dev/null +grep -F 'emcStatus->io.tool.pocketPrepped' \ + "$linuxcnc_root/src/emc/tooldata/tool_watch.cc" >/dev/null grep -F '#define TOOL_MMAP_FILENAME ".tool.mmap"' \ "$linuxcnc_root/src/emc/tooldata/tooldata_mmap.cc" >/dev/null grep -F 'int tool_nml_register(CANON_TOOL_TABLE *tblptr)' \ @@ -54,6 +70,14 @@ grep -F '`src/emc/tooldata/Submakefile` selects `tooldata_mmap.cc`' \ docs/linuxcnc-tooldata-source-map.md >/dev/null grep -F 'Tool table files referenced by switchkins INI files are source coverage only' \ docs/linuxcnc-tooldata-source-map.md >/dev/null +grep -F '`src/emc/tooldata/tool_mmap_read.cc` is the mmap tool table reader utility' \ + docs/linuxcnc-tooldata-source-map.md >/dev/null +grep -F '`tool_mmap_user()`, `tooldata_last_index_get()`, and `tooldata_get()`' \ + docs/linuxcnc-tooldata-source-map.md >/dev/null +grep -F '`src/emc/tooldata/tool_watch.cc` is the NML/mmap tool table watcher utility' \ + docs/linuxcnc-tooldata-source-map.md >/dev/null +grep -F '`EMC_STAT::io.tool` fields through `RCS_STAT_CHANNEL`' \ + docs/linuxcnc-tooldata-source-map.md >/dev/null grep -F 'tooldata:src/emc/tooldata/tooldata_common.cc:shared tool table parser/format logic' \ linuxcnc-rs274-source-files.txt >/dev/null @@ -209,6 +233,8 @@ for phrase in [ "MAX_DB_PROGRAM_ARGS=10", "`strtok_r()` argument splitting", "access(..., X_OK)", + "mmap tool table reader utility", + "NML/mmap tool table watcher utility", "inactive-DB return values", "./check-linuxcnc-tooldata-source-map.sh", "does not interpret G-code", diff --git a/docs/linuxcnc-tooldata-source-map.md b/docs/linuxcnc-tooldata-source-map.md index 904d508..077fa08 100644 --- a/docs/linuxcnc-tooldata-source-map.md +++ b/docs/linuxcnc-tooldata-source-map.md @@ -18,8 +18,12 @@ source-link/shim guard only; it must not add CNC behavior and must not expand th - `src/emc/tooldata/tooldata_db.cc` returns `-1` from `tooldata_db_getall()` when the external DB is not live, and returns `0` from `tooldata_db_notify()` without side effects in that same state. -- `src/emc/tooldata/tool_mmap_read.cc` and `src/emc/tooldata/tool_watch.cc` are - utility sources from the same LinuxCNC tooldata build metadata. +- `src/emc/tooldata/tool_mmap_read.cc` is the mmap tool table reader utility + source from the same LinuxCNC tooldata build metadata; it reads through + `tool_mmap_user()`, `tooldata_last_index_get()`, and `tooldata_get()`. +- `src/emc/tooldata/tool_watch.cc` is the NML/mmap tool table watcher utility + source from the same LinuxCNC tooldata build metadata; it reads + `EMC_STAT::io.tool` fields through `RCS_STAT_CHANNEL`. - `src/emc/tooldata/tooldata.hh` declares the tooldata API used by RS274 and WASM-safe shims.